1、原数组
let list = [
{type:"aaaaaa", name:'张三'},
{type:"bbbbbb", name:'李四'},
{type:"cccccc", name:'王五'}
];
2、错误方法(网上大部分都是这种错误的代码)
function removeByValue(arr, attr, value) {
let index = 0;
for (let i in arr) {
if (arr[i][attr] === value) {
index = i;
break;
}
}
arr.splice(index, 1);
}
removeByValue(list,"type","aaaaaa");
console.log(list);
上面网上大部分的代码,但是这个是有问题的,有很大的问题,我们的需求是,在已有的数组中,根据指定对象的属性值,删除这个指定对象,问题来了,每一次操作,都删除了一个下标的对象,不管它是否存在,都会把一个下标的对象删除。
3、正确的写法:
function removeByValue(arr, attr, value) {
let index = 0;
let flag = false;
for (let i in arr) {
if (arr[i][attr] === value) {
index = i;
flag = true
break;
} else {
flag = false
}
}
if (flag) {
arr.splice(index, 1);
}
}
文章来源地址https://www.toymoban.com/news/detail-551644.html
文章来源:https://www.toymoban.com/news/detail-551644.html
到了这里,关于js根据数组对象属性删除里面的指定对象的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!