filter()
對數組中的每個元素都執行一次指定的函數(callback),並且創建一個新的數組,該數組元素是所有回調函數執行時返回值為 true(return true) 的原數組元素,返回值為false(return false)的原數組元素過濾掉。它只對數組中的非空元素執行指定的函數,沒有賦值或者已經刪除的元素將被忽略,同時,新創建的數組也不會包含這些元素。回調函數可以有三個參數:當前元素,當前元素的索引和當前的數組對象。
// 原始數據 var arrs = [ { name: "tom", age: 18, sex: "boy" }, { name: "jim", age: 19, sex: "boy" }, { name: "anchor", age: 20, sex: "boy" }, { name: "lucy", age: 18, sex: "girl" }, { name: "lily", age: 19, sex: "girl" }, { name: "andy", age: 20, sex: "girl" } ]; // 過濾條件 var limits = { name: 'tom', age: 18, sex: 'boy' }; // filter回調函數 function dofilter(element, index, array) { if(limits.name && limits.name != element.name){ // 姓名過濾 return false; }else if(limits.age && limits.age != element.age){ // 年齡過濾 return false; }else if(limits.sex && limits.sex != element.sex){ // 性別過濾 return false; } return true; } /* test */ var filtered = arrs.filter(dofilter); console.log(filtered);
參考---https://blog.csdn.net/archer119/article/details/78893030?utm_term=js%E7%9A%84filter%E4%B8%ADreturntrue&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduweb~default-1-78893030&spm=3001.4430