js 数组的filter过滤器
过滤数组,
返回一个新数组,包含符合条件的所有元素,
如果没有符合条件的元素,则返回空数组。
注意
filter
方法会遍历数组的每一项,并对每一项应用回调函数进行判断。当回调函数返回 true
时,当前项会被包含在新数组中;当回调函数返回 false
时,当前项会被过滤掉,不包含在新数组中。
无论回调函数返回 true
还是 false
,filter
方法会遍历完整个数组。它会对数组中的每一项都应用回调函数,并根据回调函数的返回值决定是否将当前项包含在新数组中。
当回调函数返回 true
时,filter
方法会将当前项加入到新数组中,并继续遍历下一项。当回调函数返回 false
时,filter
方法会直接跳过当前项,不将其加入到新数组中,并继续遍历下一项。
只有当遍历完整个数组后,filter
方法才会返回新数组,其中包含满足条件的项。
所以,无论遇到 true
还是 false
,filter
方法都会遍历完整个数组,并返回满足条件的项组成的新数组。
filter过滤器,返回的是一个boolean,如下,
a、返回true时, 函数内部,会自动将这次回调的n,加入到新的数组中
b、返回false时,函数内部,会过滤掉这次的n
示例:
const nums = [
{ id: 20, age:18, name: 'Captain Piett' },
{ id: 24, age:30, name: 'General Veers' },
{ id: 56, age:58, name: 'Admiral Ozzel' },
{ id: 88, age:68, name: 'Commander Jerjerrod' }
];
// 对数组进行过滤,筛选出,年龄大于18岁的数据
let newArr = nums.filter(function (item) {
return item.age < 58
})
console.log(newArr);
// [ {id: 20, age: 18, name: 'Captain Piett'}, {id: 24, age: 30, name: 'General Veers'} ]