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")
答案 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(',')
};