JavaScript数组指定索引元素修改:替换id保留原值的实现方案咨询
你编写的代码出现不符合预期的原因有两点:
- 直接将
Obj.id这个数字类型的值插入数组,替换位置的元素不是你需要的对象结构 Array.slice(1)会包含原数组索引1的旧元素,最终生成的数组不仅结构错误,长度还会比预期多1
场景1:不修改原数组,生成全新数组(适用React状态更新等需要不可变操作的场景)
const newArray = [ ...Array.slice(0, 1), // 保留原索引1元素的所有属性,仅覆盖id {...Array[1], id: Obj.id}, ...Array.slice(2) ]
场景2:允许直接修改原数组
直接操作对应索引的对象属性即可,代码最简洁:
Array[1].id = Obj.id
两种写法都能得到你要的预期结果,索引1的元素保留原有value值,仅id替换为Obj的id。
小提示:Array是JavaScript内置的数组构造函数,不建议用作自定义变量名,避免出现命名冲突问题,可替换为arr等自定义命名。
内容的提问来源于stack exchange,提问作者Norbert Girch
相关产品推荐
相关产品推荐

