【发布时间】:2018-03-28 04:23:47
【问题描述】:
我不确定我的代码有什么问题,值已在嵌套的 for 循环中被覆盖,请帮助我调试以下代码。 var1 是一个数组,其中包含另一个名为 list 的数组。 Var2 也是一个数组,每个 var2.data 都等于 var1。我尝试设置每个 var2.data 的 list.id = var2.index,但由于某种原因,var2 内的所有 list.id 都等于 2,似乎该值已被覆盖。请看下面:
let var1 = [{
'name': 'name1',
'list': [{
id: 0,
a: "test1",
b: 'test2'
},
{
id: 0,
a: "aac",
b: 'test2'
},
{
id: 0,
a: "aad",
b: 'test2'
},
]
},
{
'name': 'name2',
'list': [{
id: 0,
a: "test1",
b: 'test2'
},
{
id: 0,
a: "aac",
b: 'test2'
},
{
id: 0,
a: "aad",
b: 'test2'
},
]
}
];
let var2 = [{
claim: 'claim1',
ifn: '1',
data: []
},
{
claim: 'claim2',
ifn: '2',
data: []
},
{
claim: 'claim3',
ifn: '3',
data: []
},
]
var2.forEach((item, i) => {
var1.forEach(list => {
list.list.forEach(val => {
val.id = i;
})
item.data = list;
})
})
console.log(var2)
我想让每个list.id等于var2的索引,如下所示,真的不知道如何使这段代码工作,请帮助~
var2 = [
{ claim:'claim1',ifn:'1',
data:
[{
'name':'name1',
'list':[
{id:0,a:"test1",b:'test2'},
{id:0,a:"aac",b:'test2'},
{id:0,a:"aad",b:'test2'},
]
},
{
'name':'name2',
'list':[
{id:0,a:"test1",b:'test2'},
{id:0,a:"aac",b:'test2'},
{id:0,a:"aad",b:'test2'},
]
}]
},
{ claim:'claim2',ifn:'2',
data:
[{
'name':'name1',
'list':[
{id:1,a:"test1",b:'test2'},
{id:1,a:"aac",b:'test2'},
{id:1,a:"aad",b:'test2'},
]
},
{
'name':'name2',
'list':[
{id:1,a:"test1",b:'test2'},
{id:1,a:"aac",b:'test2'},
{id:1,a:"aad",b:'test2'},
]
}]
},
{ claim:'claim3',ifn:'3',
data:[{
'name':'name1',
'list':[
{id:2,a:"test1",b:'test2'},
{id:2,a:"aac",b:'test2'},
{id:2,a:"aad",b:'test2'},
]
},
{
'name':'name2',
'list':[
{id:2,a:"test1",b:'test2'},
{id:2,a:"aac",b:'test2'},
{id:2,a:"aad",b:'test2'},
]
}]
}
]
【问题讨论】:
-
嗨@lin - 欢迎来到 StackOverflow。您所写的问题有点难以解析——您可能想查看How to Ask 以获取有关制作格式正确的问题的提示。这将有助于为您的帖子绘制高质量的答案。祝你好运,编码愉快!
-
您的下部对象中似乎有分号,这是无效的语法,尚不完全清楚您实际要查找的结构是什么。
-
结构不清楚,我稍微搞清楚了,希望能更容易理解。
-
如何检查合并?同一个索引会合并数据吗?
标签: javascript for-loop nested