1、在js中如何删除一个字段?
例如 有
list=[{id:1},{id:4},{id:3}]
如何删除 {id:4}
2、为什么 list.indexOf({id:4})=-1?
先回答第一个问题,你可以这么做:
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
list.splice(1, 1); 可以删除 list数组项中的第二项
Array.prototype.indexOf(),查找数组过程中,使用strict equality (无论是 ===, 还是 triple-equals操作符都基于同样的方法)进行判断,如果是对象之间对比,会去查找两个对象之间的引用是否一致。很显然 {id:4} 与 list 数组中的各个数组项所在的引用位置是不一样的,所以结果为 -1