2016-03-30 104 views
0

我有一個JavaScript對象,如下所示:在JavaScript中將json csv轉換爲json對象的最佳方法是什麼?

[{name:'bla', ts:['a','b','c'], ms: ['d','e','f']}] 

沒有一堆臨時對象的,什麼是最有效的方式,我可以去把它變成一個對象,如下所示:

[{name:'bla',ts:'a',ms:'d'}, 
{name:'bla',ts:'b',ms:'e'}, 
{name:'bla',ts:'c',ms:'f'}] 

我我打算使用lodash或下劃線來實現這一點。

+0

如何'名稱,TS和ms'有關?總是1'名字'?是'ts'和'ms'類似的性質? – Wainage

+0

是的,每個獨特的名字都會有一條記錄。 ts和ms將具有相同的大小。 – user6135815

+0

檢查一下,它不完全一樣,但該傢伙使用lodash解析csv字符串到對象中......足夠接近開始:http://jsfiddle.net/sscovil/7sza8shs/ – JordanHendrix

回答

0

這是醜陋的,但工程(和容易增加 '額外' 的字段)

var a = [{name:'bla', ts:['a','b','c'], ms: ['d','e','f']}] 

var result = []; 
a.forEach(function(obj){ 
    obj.ts.forEach(function(item, index) { 
     result.push({ 
      name: obj.name, 
      ts: item, 
      ms: obj.ms[index] 
     }) 
    }) 
}) 

console.log(result) 
+0

謝謝。看起來完全像我需要的東西。 – user6135815

0

var arr = [{ 
 
    name: 'bla', 
 
    ts: ['a', 'b', 'c'], 
 
    ms: ['d', 'e', 'f'] 
 
}]; 
 

 
function parseArray(arr) { 
 
    var result = []; 
 
    arr.forEach(function(obj) { 
 
    for (var i = 0; i < obj.ts.length; i++) { 
 
     result.push({ 
 
     name: obj.name, 
 
     ts: obj.ts[i], 
 
     ms: obj.ms[i] 
 
     }); 
 
    } 
 
    }); 
 
    return result; 
 
} 
 

 
console.log(parseArray(arr));

相關問題