如何只修改对象中嵌套数组的部分内容,其余属性保持不变?
你可以通过对象展开运算符先复制原对象的所有顶层属性,再单独覆盖需要修改的someArr字段即可,实现代码如下:
const newList = { ...someList, someArr: someList.someArr.slice(0, 2) };
该写法会先把someList的所有顶层属性(包含something1、something2、原someArr)全部复制到新对象中,后续单独声明的someArr会自动覆盖复制过来的原数组属性,完全满足你仅修改嵌套数组、其余属性保持不变的需求。
如果你的使用场景需要避免新旧对象的深层引用互相影响,可以先做深拷贝再修改数组:
// 简单场景可以用JSON序列化方式实现深拷贝,复杂场景可使用对应工具库的深拷贝方法 const newList = JSON.parse(JSON.stringify(someList)) newList.someArr = newList.someArr.slice(0, 2)
内容的提问来源于stack exchange,提问作者Jonathan Samson
相关产品推荐
相关产品推荐

