JavaScript中如何删除嵌套对象数组里特定元素的指定属性
你可以通过两层遍历处理嵌套数组,外层遍历顶级数组的所有元素,内层遍历每个元素下的items子数组,匹配到type为teacher的元素后,执行属性修改或删除操作即可。
删除rollno属性
使用delete操作符删除目标属性即可,示例代码:
array.forEach(topItem => { topItem.items.forEach(subItem => { if (subItem.type === 'teacher') { delete subItem.rollno } }) })
运行后原数组中type为teacher的元素会移除rollno属性,其余元素不受影响。
修改rollno属性
如果需要修改为指定值(比如修改为"0"),直接给属性赋值即可:
array.forEach(topItem => { topItem.items.forEach(subItem => { if (subItem.type === 'teacher') { subItem.rollno = "0" // 替换为你需要的目标值即可 } }) })
不改动原数组,返回新数组
如果需要避免修改原数据,可以用map方法生成新数组:
const newArray = array.map(topItem => { return { ...topItem, items: topItem.items.map(subItem => { if (subItem.type === 'teacher') { // 删除rollno的写法: const { rollno, ...rest } = subItem return rest // 如果是修改rollno,把上面两行替换为:return {...subItem, rollno: "目标值"} } return subItem }) } })
内容的提问来源于stack exchange,提问作者Engr.Aftab Ufaq
相关产品推荐
相关产品推荐

