1.用法概述
filter() 过滤数组,并将满足条件的数组元素放到新创建的一个数组,不改变原数组,参数是一个回调函数,回调函数有三个参数,分别是Item、index、arr。
2.语法
arr.filter(callbackFun(item, index, arr) { })
或arr.filter((item, index, arr) => { });
1)参数
callbackFun()——数组中每个元素执行的函数,该函数有三个参数。
Item——原数组的每个数组元素
index——原数组的每个数组下标
arr——被遍历的原数组
2)返回值
filter() 不会改变原数组,它返回过滤后的新数组。如果没有任何数组元素满足条件,则返回一个空数组。
3.案例用法
const b1 = [2,5,7,9,11,21,22,33];
const b2 = b1.filter((item,index,arr)=> item % 2 === 0); //[2,22]
console.log(b2);
const b3 = b1.filter((item,index,arr)=> index % 2 === 0); //[2,7,11,22]
console.log(b3);
const b4 = b1.filter((item,index,arr)=> console.log(arr)); //[2,5,7,9,11,21,22,33]
console.log(b4);
//filter()可用于数组去重:对数组arr中所有相同的元素进行去重操作
const array = [1, 2, 3, 6, 6, 5, 1, 2, 9, 0];
const newArr = array.filter((item, index, arr) => {
return array.indexOf(item) === index //第一个1的位置是零,第二个1的位置是六,零不等于六,所以只返回第一个数组元素1
})
console.log(newArr); // [1, 2, 3, 6, 5, 9, 0]