📜  ES6 |数组 filter() 方法

📅  最后修改于: 2022-05-13 01:56:53.313000             🧑  作者: Mango

ES6 |数组 filter() 方法

Array filter()是一个内置方法,该方法创建一个新数组,其中的元素遵循或通过给定的标准和条件。
为了更好地理解这个概念,下面已经实现了几个例子

句法:

var newArray = arr.filter(callback(element[, index[, array]])
[, thisArg])

参数:此方法接受上面提到和下面描述的 2 个参数:

  • 回调:该函数是一个谓词,用于测试数组的每个元素。返回 true 以保留元素,否则返回 false。它接受三个参数:
    • element:数组中正在处理的当前元素。
    • index(可选):当前正在处理的元素在数组中的索引。
    • 数组(可选):调用了数组过滤器。
  • thisArg(可选):执行回调时用作 this 的值。

示例1: filter函数过滤数组中所有大于5的数值

var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var result = numbers.filter(number => number > 5);
console.log(result);

输出 :

[ 6, 7, 8, 9, 10 ]

示例 2: filter函数过滤数组中所有长度大于 5 的单词

var words = ["hi", "hello", "hey", "apple", "watermelon",
             "lemon", "javascript"];
var result = words.filter(word => word.length > 5);
console.log(result);

输出 :

[ 'watermelon', 'javascript' ]

示例 3: filter函数从数组中过滤掉所有无效的用户 id。

var jsonarr = [
    {
        id: 1,
        name: "joe"
    },
    {
        id: -19,
        name: "john"
    },
    {
        id: 20,
        name: "james"
    },
    {
        id: 25,
        name: "jack"
    },
    {
        id: -10,
        name: "joseph"
    },
    {
        id: "not a number",
        name: "jimmy"
    },
    {
        id: null,
        name: "jeff"
    },
]
  
var result = jsonarr.filter(user => user.id > 0);
  
console.log(result);

输出:

[{"id":1,"name":"joe"},{"id":20,"name":"james"},
{"id":25,"name":"jack"}]