js如何删除对象

arr = [
  {id:1,name:'aaa'},
  {id:2,name:'bbb'},
  {id:3,name:'ccc'}
];

for(var item in arr){
  if(arr.hasOwnProperty(item)){
    if(arr[item].id === 2){
      delete(arr[item]);
      continue;
    }
  }
}

这样删除对象后会留有一个undefined占位符,请问如何彻底删掉相应的对象?

阅读 17.1k
5 个回答

这里的arr是一个数组,所以用数组的方法删除就好,比如splice

如果只是这个需求的话,可以用高阶函数来处理:

arr = [
  {id:1,name:'aaa'},
  {id:2,name:'bbb'},
  {id:3,name:'ccc'}
];

arr = arr.filter(item => item.id !== 2)

delete一般用于删除对象的属性的,你可以把数组看成一个对象,键是0-n,你delete是value,键还在

delete(arr[item])改成arr.splice(item,1);

arr.splice(item, 1)

这叫删除对象的一个属性,删除对象直接将其设为null,删除属性建议用Reflect函数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题