如何修改JavaScript数组内对象的指定属性值
实现方案
方案1:原地修改原数组(性能更高,适合允许修改原数组的场景)
直接用Array.prototype.forEach遍历数组修改每个对象的b属性即可:
var array = [{a:1, b:false}, {a:2, b:true}, {a:3, b:false}]; array.forEach(item => item.b = true); // 执行后array就是目标结果
方案2:生成新数组(不修改原数组,适合需要保留原始数据的场景)
用Array.prototype.map结合对象展开运算符生成新数组,原有数组不会被改动:
var array = [{a:1, b:false}, {a:2, b:true}, {a:3, b:false}]; var newArray = array.map(item => ({ ...item, b: true })); // 原array保持不变,newArray是目标结果
如果你的实际业务中对象包含深层嵌套属性,浅拷贝无法满足需求的话,可以自行替换为深拷贝逻辑再修改b属性即可,当前示例场景下两种方案都可直接使用。
内容的提问来源于stack exchange,提问作者zahra zamani
相关产品推荐
相关产品推荐

