const arr = [
{ id: 10, name: '小红' , children: [ {id: 21, name: '小红红' } ]},
{ id: 11, name: '小明' , children: [ {id: 22, name: '小明明' } ]}
];
我们要修改arr数组里面id是10并且children里面id是21的name值为大红红,我们这样做,用spread展开操作,代码如下:
const arrCopy1 = arr.map(obj=> {
if (obj.id === 10){
return
{...obj, children: obj.children
.map(objs=>{
if (objs.id === 21){
return { ...objs, name: '大红红' }
} else {
return { ...objs }
}
})
}
} else {
return { ...obj }
}
})
搞定,不会修改原数组,记住一句话,只要记住...展开,需要修改的字段列出来继续展开覆盖就行