简述 JavaScript 之 filter

Rinsann 2021年11月20日 555次浏览

本文主要从以下几点介绍 filter

  • 定义
  • filter的使用技巧
  • 结论

定义

定义filter()方法创建新数组,其中包含通过所提供的函数实现的测试的所有元素。

使用Filter

查看下面的代码实例:

const data=[
  {name:"prakash",age:20},
  {name:"bhanu",age:21},
  {name:"mohan",age:40}
];

const select_user=data.filter(function(user){
    if (user.name==="prakash"){
       return true
    }
    return false
});

我们可以简化代码,如下所示:

let selected_user=data.filter(function(user) {
    return user.name==="prakash"
})

如果满足条件上面的代码将返回true,否则它将返回false,我们可以使用ES6语法简化上面的代码,更加简单易懂。

let selected_user=data.filter((user)=> user.name==="prakash")
// 或者删除一些不必要的括号
let selected_user=data.filter(user => user.name==="prakash")

当然,还可以通过使用解构的方式来简化它:

const selectedUsers = data.filter(({ name }) => name === "prakash");

还应该考虑的是,如果我们只想找到一个匹配的元素,那么查找是更好的方法:

const selectedUser = data.find(({ name }) => name === "prakash");

结论

  1. Filter 方法返回一个新数组,该数组仅由满足所提供函数的那些元素组成。
  2. 过滤方法不会改变原始数组。
  3. Filter 方法不执行空元素的函数。