对于array-json对象中的每个元素

时间:2015-07-29 19:14:26

标签: javascript arrays json

1)我想要的是:

element1 = [roof, walls, floor]
element2 = [table, chair]

2)我的出发点是:

for(var i=0;i<roomElements;i++){ 
var room = [];
room.push({"element" + i + : getElement(room)});
}

&#34; I&#34;废墟党。如何将动态变量附加到我的json数组?

我需要有空间成为像这样的对象:

   var room = {"element1":"roof,walls,floor","element2":"table,chair"};

然后我想处理那个对象 - 一些 - 所以我可以得到:

element1 = [roof, walls, floor]
element2 = [table, chair]

然后我想用这样的东西回应这些新变量。

  for each element in room

所以我可以输出:

  alert("element 1 has roof, walls,floor", "element2 has table, chair")    

1 个答案:

答案 0 :(得分:0)

你不能(在ES6之前)使用这样的动态字段名称。

而不是room.push({"element" + i + : getElement(room)});,您需要:

var foo = {};
foo["element" + i] = getElement(room);
room.push(foo);

使用ES6,您可以使用计算的属性名称,所以

room.push({["element" + i]: getElement(room)});

变得合法。

因为您每次迭代都重新初始化elem,所以仍然无法完全按照您的要求执行操作。将每个起始数组join作为其元素并创建结果的完成对象可能会更好:

var json = {
  element1: element1.join(','),
  element2: element2.join(',')
};