Javascript 对于数组json对象中的每个元素

Javascript 对于数组json对象中的每个元素,javascript,arrays,json,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)}); } 然后我想处理这个对象-不知怎么的-这样我可以得到: element1 = [roof, walls, floor] element2

1) 我想要的是:

element1 = [roof, walls, floor]
element2 = [table, chair]
2) 我的出发点是:

for(var i=0;i<roomElements;i++){ 
var room = [];
room.push({"element" + i + : getElement(room)});
}
然后我想处理这个对象-不知怎么的-这样我可以得到:

element1 = [roof, walls, floor]
element2 = [table, chair]
然后我想用类似的东西来回应这些新变量

  for each element in room
因此,我可以输出:

  alert("element 1 has roof, walls,floor", "element2 has table, chair")    
您不能(在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
,这仍然不能完全满足您的需要。获取每个起始数组及其元素并创建结果的完成对象可能会更好:

var json = {
  element1: element1.join(','),
  element2: element2.join(',')
};
您不能(在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
,这仍然不能完全满足您的需要。获取每个起始数组及其元素并创建结果的完成对象可能会更好:

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

在第一个解决方案中,变量“foo”变为:[element1:屋顶、墙壁、地板,[圆形]]。我不知道这是什么意思。如何打印每个foo或每个元素?使用第一个解决方案变量“foo”将变成:[element1:屋顶、墙壁、地板,[圆形]]。我不知道这是什么意思。如何打印每个foo或每个元素?