js对象数组根据对象属性删除对象
作者:longzhoufeng
这篇文章主要介绍了js对象数组根据对象属性删除对象,需要的朋友可以参考下
根据id查找到对象数组里面的对象,然后移除该对象
array 是定义的数组
var ary = [{id:1,name:"b"},{id:2,name:"b"}];
for (var i = 0;i < ary.length; i++){
if (ary[i].id==2){
ary.splice(i,1);
}
}
console.log(ary);js根据数组对象属性删除里面的指定对象
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);
}
}到此这篇关于js对象数组根据对象属性删除对象的文章就介绍到这了,更多相关对象属性删除对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
