2015-10-07 56 views
2

如何從數組中創建對象的動態名稱?例如:在數組中創建值的動態名稱

這是我的代碼:

var data=[{"column":"1", "count":"1"},{"column":"2", "count":"2"},{"column":"3", "count":"3"}]; 
var data2=[{"column":"1", "count":"5"},{"column":"2", "count":"2"},{"column":"3", "count":"7"}]; 
var data3=[{"column":"1", "count":"9"},{"column":"2", "count":"6"},{"column":"3", "count":"1"}]; 

var obj=[]; 

for (i=0;i<data.length;++i) 
    obj.push({date: data[i].column, count1: data[i].count}); 

for (i=0;i<data2.length;++i) 
    obj[i].count2 = data[2].count; 

for (i=0;i<data3.length;++i) 
    obj[i].count3 = data3[i].count; 

console.log(obj); 

,這是鏈接的jsfiddle:https://jsfiddle.net/r4tnewxg/

正如你所看到的例子是「計數1」的一部分,等等。你可以以動態的方式做到這一點?例如,for循環並利用'我'?然後名稱將是「計數」 + i「的結果:」 COUNT1「」 COUNT2「等

回答

3

如果我理解正確的話,你是這樣的事情後,也許

var obj = {}; 
... 
obj["count"+i] = ... 
+0

「OBJ [I] .Count之間的+我」這就是問題所在。我不能寫「數+ i」指新元素從我的陣列 –

+0

是的,你必須使用對象其實 – bgse

+0

是的,謝謝:) –

2

你根本?使用concat函數

var obj=data.concat(data2,data3); 
+0

請考慮編輯你的文章添加更多解釋abo你的代碼做什麼以及爲什麼它會解決問題。一個主要包含代碼的答案(即使它正在工作)通常不會幫助OP瞭解他們的問題。 – SuperBiasedMan