扫码关注官方订阅号
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
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
先回答第一个问题,你可以这么做:
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