数组 filter() 是一个内置方法,该方法创建一个新数组,其中的元素遵循或通过给定的标准和条件。为了更好地理解这个概念,下面实施了一些示例
用法:
var newArray = arr.filter(callback(element[, index[, array]]) [, thisArg])
参数:此方法接受上面提到的和下面描述的 2 个参数:
- Callback:该函数是一个谓词,用于测试数组的每个元素。返回 true 以保留元素,否则返回 false。它接受三个参数:
- element:数组中正在处理的当前元素。
- index(Optional):数组中正在处理的当前元素的索引。
- array(Optional):调用了数组过滤器。
- thisArg(Optional):执行回调时用作 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"}]
相关用法
注:本文由纯净天空筛选整理自IshjotSingh97大神的英文原创作品 ES6 | Array filter() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。