js 根据条件删除数组中某个对象&js filter (find)过滤数组对象的使用
删除 ---- item不设置
arr.splice(1,1) //['a','c','d'] 删除起始下标为1,长度为1的一个值,len设置的1,如果为0,则数组不变
arr.splice(1,2) //['a','d'] 删除起始下标为1,长度为2的一个值,len设置的2
替换 ---- item为替换的值
arr.splice(1,1,'ttt') //['a','ttt','c','d'] 替换起始下标为1,长度为1的一个值为‘ttt’,len设置的1
arr.splice(1,2,'ttt') //['a','ttt','d'] 替换起始下标为1,长度为2的两个值为‘ttt’,len设置的1
添加 ---- len设置为0,item为添加的值
arr.splice(1,0,'ttt') //['a','ttt','b','c','d'] 表示在下标为1处添加一项‘ttt’
看来还是splice最方便啦
2:delete delete删除掉数组中的元素后,会把该下标出的值置为undefined,数组的长度不会变
如:delete arr[1] //['a', ,'c','d'] 中间出现两个逗号,数组长度不变,有一项为undefined
根据id查找到对象数组里面的对象,然后移除该对象
array 是定义的数组
var array = [{id:1,name:"b"},{id:2,name:"b"}]; for (var i = 0;i < array.length; i++){ if (ary[i].id==2){ ary.splice(i,1); } }
使用js filter
var arr = [1,2,'',3,' ']; var arr2=arr.filter(function (item) { return item; });
var array = [{id:1,name:"b"},{id:2,name:"b"}];
var arr2=arr.filter(function (item) {
return item.id!=1;
});
使用find
find()方法返回数组中第一个满足回调函数测试的第一个元素的值。否则返回undefined const arr1 = [1, 2, 3, 4, 6, 9]; let found = arr1.find(e => e > 5); // 6 参数: 第一个:执行的回调函数 第二个:指定回调函数的this对象