1. 使用 findIndex() 定位满足条件的项,然后通过 splice() 进行删除
废话不多说,上代码:
// 定义一个空数组
let items = [];
// 向数组中存放 7 个对象
for (let i = 3; i < 10; i++) {
items.push(
{
id: i,
name: "zym" + i,
age: 20 + i,
}
)
}
// 定位满足条件项的下标
let obj = items.findIndex((item) => {
// id 等于 6 的元素下标
if (item.id == 6) {
return true;
}
});
// 打印 obj,会发现是数组元素下标 3
console.log(obj);
// 根据下标删除元素, 第一个参数值需要开始删除元素的下标 第二个参数是指删除元素的个数
items.splice(obj, 1);
// id 等于 6 的对象已被删除
console.log(items);
结果:
2. 删除数组中某一项已实现,接下来我们看看 findIndex() 方法的定义
看以上语法截图,findIndex() 的第一个参数是一个函数,也是必填项,函数的三个参数也有说明,函数的第一个参数也是必填项,第一个参数是当前元素,这有点像java的增强for循环,遍历数组,拿到每个数组对象。
当数组中的元素在测试条件时返回 true
时, findIndex() 返回符合条件的元素的索引位置
,之后的值不会
再调用执行函数。如果没有
符合条件的元素返回 -1。这就是上述代码 obj 等于的 3 的原因。
3.再看看
splice() 的定义
splice() 方法也有三个参数,第一个参数是必填项,是指需要被删除元素的下标,第二个参数是可选项,是指从下标(第一个参数)开始,删除后面几项。1 代表删除 1 项,0 代表不删除任何项。一般我们用 splice() 也就传两个参数。
以上语法截图来自,菜鸟教程,有兴趣的朋友可以移步菜鸟教程。https://www.runoob.com/