js 根据条件删除数组中某个对象&js filter (find)过滤数组对象的使用

时间:2022-04-07 04:09:13

删除 ----  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对象