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"}]