Javascript 使用forEach删除对象';s属性失败
我下面的代码有什么问题?如何删除对象名称属性的最后两个数组Javascript 使用forEach删除对象';s属性失败,javascript,ecmascript-6,Javascript,Ecmascript 6,我下面的代码有什么问题?如何删除对象名称属性的最后两个数组 let arr = [{id:1,name:'sit'},{id:2,name:'stand'},{id:3,name:'bark'}] let abc = arr.forEach((obj, i) => { if(i > 0){ delete obj.name } })) 我的预期产出 [{id:1,name:'sit'},{id:2},{id:3}] 你的代码对我有用,正如你在这里看到的 我看到的唯一错误是您
let arr = [{id:1,name:'sit'},{id:2,name:'stand'},{id:3,name:'bark'}]
let abc = arr.forEach((obj, i) => {
if(i > 0){
delete obj.name
}
}))
我的预期产出
[{id:1,name:'sit'},{id:2},{id:3}]
你的代码对我有用,正如你在这里看到的 我看到的唯一错误是您有一个额外的
)
您所做的是在适当的位置修改数组,而foreach不会返回新数组,因为它会返回undefined
let arr=[{id:1,名称:'sit'},{id:2,名称:'stand'},{id:3,名称:'bark'}]
arr.forEach((obj,i)=>{
如果(i>0){
删除对象名
}
})
console.log(arr)
您得到了什么输出?代码对我有效…forEach
不返回任何内容。。。您正在原地修改arr
。我会说undefined
,而不是void
。
let arr = [{id:1,name:'sit'},{id:2,name:'stand'},{id:3,name:'bark'}]
arr.forEach((obj, i) => {
var index = arr.indexOf(obj);
if(index > (arr.length - 3)){
delete obj.name
}
})
console.log(arr)