【问题标题】:For each element in array-json object对于 array-json 对象中的每个元素
【发布时间】:2015-07-29 19:14:26
【问题描述】:

1) 我想要的是:

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

2) 我的出发点是:

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

“i”毁了聚会。如何将动态变量附加到我的 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")    

【问题讨论】:

    标签: javascript arrays json


    【解决方案1】:

    你不能(在 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(',')
    };
    

    【讨论】:

    • 随着你的第一个解决方案变量'foo'变成这样:[element1:roof,walls,floor, [Circular]]]。我不知道这意味着什么。如何打印每个 foo 或每个元素?
    猜你喜欢
    • 2016-01-20
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 2013-06-24
    • 2012-12-28
    相关资源
    最近更新 更多