2015-10-07 89 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