前言
前段时间在写项目时,数据重组中更新数组对象发现有个踩坑的地方,就是双遍历赋值都没问题,return的时候数据就出现问题了,原始数组对象还是未被更新覆盖,虽然最终是出来了,但是自己投入了一定的时间,所以必须做笔记让自个长记性!🤨
let hotDrama=[
{
stageName:"阿宝",
age:"41",
artist:"胡歌"
},
{
stageName:"李李",
age:"37",
artist:"辛芷蕾"
},
{
stageName:"玲子",
age:"47",
artist:"马伊琍"
},
{
stageName:"汪明珠",
age:"40",
artist:"唐嫣"
},
];
let hotDrama2=[
{
stageName:"宝总",
age:"41",
artist:"胡歌"
},
{
stageName:"汪小姐",
age:"40",
artist:"唐嫣"
}
]
更新覆盖Update array objects!
function arrayRepeat (oldValue,newValue) {
let a1 = oldValue,
a2 = newValue;
for (var i = 0; i < a1.length; i++) {
for (var j = 0; j < a2.length; j++) {
if ( a1[i].artist=== a2[j].artist) {
a1[i] = a2[j]
break
}
}
}
return a1
}
arrayRepeat(hotDrama,hotDrama2)
重点:if条件生效后需添加break