我有数组:
[
{
name: 'Bob',
nestedArray: [ { param: '' }, { param: ''}, ... ]
},
{
name: 'Alise',
nestedArray: [ { param: '' }, { param: ''}, ... ]
},
{
name: 'Rony',
nestedArray: [ { param: '' }, { param: ''}, ... ]
},
....
]
需要制作Array.nestedArray.param = Array.name
我做:
Array.forEach((arrayElement) => {
arrayElement.nestedArray.forEach((nestedArrayElement) => {
console.log(arrayElement.name);
nestedArrayElement.param = arrayElement.name;
});
});
console.log(Array);
检查结果数组我得到的参数等于所有nestedArrays中的'Rony'(最后一次迭代的arrayElement) 。但字符串
console.log(arrayElement.name);
总是返回预期值('Bob','Alise','Rony')
我也试过读取和写入索引。
请帮帮我。我做错了什么?
答案 0 :(得分:0)
如果我正确理解你的问题:
var arr = [
{ name: 'Bob', nestedArray: [{ param: '' }, { param: ''}] },
{ name: 'Alice', nestedArray: [{ param: '' }, { param: ''}] },
{ name: 'Rony', nestedArray: [{ param: '' }, { param: ''}] },
];
for (var i in arr) {
for (var j in arr[i].nestedArray) {
arr[i].nestedArray[j].param = arr[i].name;
}
}
编辑:
修复了@ napilnik评论的代码。至于不使用for-in
,它不会改变基本想法,一旦他/她知道结果就可以由开发人员决定。