我试图运行一个for循环来创建新的javascript对象并将其添加到现有的javascript对象而不进行替换。
例如,我试图将其创建为输出,而不会每次都覆盖group [i](仅添加number [i] data):
{
"group1": {
"number1": "data",
"number2": "data",
"number3": "data"
},
"group2": {
"number1": "data",
"number2": "data"
}
}
我的循环如下所示:
var array = [{
"groupName": "group1",
"number": "number1",
"data": "data"
}, {
"groupName": "group1",
"number": "number2",
"data": "data"
}, {
"groupName": "group1",
"number": "number3",
"data": "data"
}, {
"groupName": "group2",
"number": "number1",
"data": "data"
}, {
"groupName": "group2",
"number": "number2",
"data": "data"
}]
var groupLinks = {};
for(i = 0; i < array.length; i++) {
groupLinks[array[i].groupName] = {
[array[i].number]: array[i].data
}
如您在此代码中看到的那样,我的循环每次只会替换“ group1”和“ group2”。
这就是我要如何处理这个问题:
var array = [{
"groupName": "group1",
"number": "number1",
"data": "data"
}, {
"groupName": "group1",
"number": "number2",
"data": "data"
}, {
"groupName": "group1",
"number": "number3",
"data": "data"
}, {
"groupName": "group2",
"number": "number1",
"data": "data"
}, {
"groupName": "group2",
"number": "number2",
"data": "data"
}];
var groupLinks = {};
array.forEach(
function (element)
{
var groupName = element.groupName;
(groupLinks[groupName] = groupLinks[groupName] || {})
[element.number] = element.data;
}
);
console.log(groupLinks);
在这里,当||
操作员不存在时,我使用运算符创建了一个新组groupLinks[groupName]
,并在每次迭代时覆盖了现有的组,并且使用了一种forEach
构造来遍历数组元素。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句