假设我有两个对象数组:
let array1 = [
{
id: 1,
name: 'snow'
},
{
id: 4,
name: 'jo'
},
{
id: 8,
name: 'bran'
},
{
id: 12,
name: 'gondo'
},
{
id: 13,
name: 'peter'
}
]
let array2 = [
{
id: 3,
name: 'brim'
},
{
id: 4,
name: 'not-jo'
},
{
id: 8,
name: 'not-bran'
},
{
id: 13,
name: 'spleen'
}
]我希望在array2中找到与array1通过id匹配的所有对象,并更改它们的名称值以匹配array1中的名称值。
在我的伪码里:
array1.forEach((person)=> {
if(person.id is equal to person.id in array2){
person.name = person.name in array1
}
})发布于 2017-07-21 06:35:44
循环遍历每个元素并比较那里的ids。如果它们匹配,则更新名称:
for (var i = 0; i < array2.length; i++) {
for (var k = 0; k < array1.length; k++) {
if (array2[i].id == array1[k].id) {
array2[i].name = array1[k].name;
break;
}
}
}试一试:
let array1 = [{
id: 1,
name: 'snow'
},
{
id: 4,
name: 'jo'
},
{
id: 8,
name: 'bran'
},
{
id: 12,
name: 'gondo'
},
{
id: 13,
name: 'peter'
}
]
let array2 = [{
id: 3,
name: 'brim'
},
{
id: 4,
name: 'not-jo'
},
{
id: 8,
name: 'not-bran'
},
{
id: 13,
name: 'spleen'
}
]
console.log(array2);
for (var i = 0; i < array2.length; i++) {
for (var k = 0; k < array1.length; k++) {
if (array2[i].id == array1[k].id) {
array2[i].name = array1[k].name;
break;
}
}
}
console.log(array2);
https://stackoverflow.com/questions/45230436
复制相似问题