1. 程式人生 > 其它 >js 根據條件刪除陣列中某個物件&js filter (find)過濾陣列物件的使用

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物件