js中怎么删除一个字段

1、在js中如何删除一个字段?
例如 有
list=[{id:1},{id:4},{id:3}]
如何删除 {id:4}
2、为什么 list.indexOf({id:4})=-1?

阅读 5.7k
2 个回答

先回答第一个问题,你可以这么做:

var list = [{id:1},{id:4},{id:3}];

var removedList = list.filter(item => item.id !== 4);

console.log(removedList);//[{id:1},{id:3}]
``

再来回答第二个问题,为什么`list.indexOf({id:4})=-1`,那你可以试试:

var a = {id: 4};
var b = {id: 4};

console.log(a === b);//结果是false

  1. list.splice(1, 1); 可以删除 list数组项中的第二项

  2. Array.prototype.indexOf(),查找数组过程中,使用strict equality (无论是 ===, 还是 triple-equals操作符都基于同样的方法)进行判断,如果是对象之间对比,会去查找两个对象之间的引用是否一致。很显然 {id:4} 与 list 数组中的各个数组项所在的引用位置是不一样的,所以结果为 -1

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