JS—数组的filter()

138 阅读1分钟

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]

developer.mozilla.org/zh-CN/docs/…