filter():对数组每一项都运行传入的函数,函数返回 true 的项会组成数组之后返回
基本使用
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
// 返回过滤后满足新条件的数组,返回新数组
const result = words.filter(word => word.length > 6);
console.log(result, words);
进阶用法
筛选数组值
const arr = [1, 2, 3, 4, 5, 6, 7, 8]
function isBigNums(params) {
return params > 3
}
let newArr = arr.filter(isBigNums)
console.log(newArr, 'newArr');
过滤json中的无效数组
const json = [{
id: 15
}, {
id: 1
},
{
id: 0
},
{
id: null
},
{},
{
id: undefined
},
{
id: NaN
}
]
function filterJson(val) {
return val.id && val.id != 0
}
let newJson = json.filter(filterJson)
console.log(newJson, 'newJson');
根据条件来过滤数组
var fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];
function filterItems(query) {
return fruits.filter(function (el) {
return el.toLowerCase().indexOf(query.toLowerCase()) > -1;
})
}
var newFruits = filterItems('ap')
console.log(newFruits, 'fruits');