如何修改数组中group为B的对象的status属性为false且不影响其他项
实现方案
方案1:修改原数组(基于你尝试的forEach实现)
直接补全遍历逻辑即可,因为数组内存储的是对象引用,遍历中直接修改符合条件的对象属性就会生效,不会改动其他条目:
personnel.forEach(p => { if (p.group === 'B') { p.status = false } })
方案2:返回新数组(不改动原数组)
如果需要保留原始数组数据不被污染,可以用map方法生成新数组,符合条件的条目返回修改后的新对象,其他条目直接返回原对象即可:
const newPersonnel = personnel.map(p => { if (p.group === 'B') { // 解构原对象后覆盖status属性,避免修改原对象 return { ...p, status: false } } return p })
内容的提问来源于stack exchange,提问作者bysiuxvx
相关产品推荐
相关产品推荐

