使用filter()的注意事项

定义和用法

filter用于对数组进行过滤。

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

使用filter()的注意事项:

一:回调函数

filter()方法接收的回调函数,可以有多个参数。通常我们仅使用第一个参数,表示数组的某个元素。回调函数还可以接收另外两个参数,表示元素的位置和数组本身。

二:原数组不变

filter() 方法不会修改原始数组,而是返回一个新的筛选后的数组。因此,在使用该方法后,应该使用新的数组来存储结果,或者将结果直接赋给变量,而不是期望原数组被修改。

三;处理空数组

filter() 方法不会对空数组进行检测。如果原始数组为空(即没有任何元素),那么经过过滤后的结果也将是一个空数组。因此,在使用 filter() 方法之前,最好先检查数组是否为空,以避免不必要的操作。

四:隐式类型转换

使用 filter() 方法时,要注意 JavaScript 的隐式类型转换规则。回调函数中的条件表达式可能导致意外的结果,例如字符串和数字之间的比较。确保在进行条件判断时,类型一致性与预期一致。

例子:

返回数组arrNum中所有大于等于2的元素。

 

      const arrNum = [1, 2, 3, 4, 5, 6]
      const newArrNum = arrNum.filter(item => {
        return item >= 2
      })
      console.log(newArrNum) // [2,3,4,5,6]

使用filter去除Array的重复元素:

    const arr = ['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange', 'strawberry']

     const rnewArr = arr.filter(function(element, index, self) {
        return self.indexOf(element) === index
      })
      console.log(rnewArr.toString())// apple,strawberry,banana,pear,orange

对数组进行过滤,筛选出年龄大于 18岁的数据

 const arrNum = [
        {
          name: 'tom1',
          age: 24
        },
        {
          name: 'tom2',
          age: 33
        },
        {
          name: 'tom3',
          age: 17
        },
        {
          name: 'tom4',
          age: 13
        }
      ]
      const res = arrNum.filter(item => item.age > 18)
      console.log(res) // [{name: 'tom1',age: 24},{name: 'tom2',age: 22}]
      console.log(arrNum)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值