JavaScript中有很多数组过滤方法,比如:filter()、map()、reduce()、find()、some()、every()、includes()等。
filter()方法:它用于把Array的某些元素过滤掉,返回剩下的元素。
语法:arr.filter(callback(element[, index[, array]])[, thisArg])
例子:
var arr = [1,2,3,4,5]; var result = arr.filter(function(item){ return item > 3; }); console.log(result); // [4,5]
map()方法:它用于把Array的某些元素通过函数映射转换成新的元素,返回新的数组。
语法:arr.map(callback(currentValue[, index[, array]])[, thisArg])
例子:
var arr = [1,2,3,4,5]; var result = arr.map(function(item){ return item*2; }); console.log(result); // [2,4,6,8,10]
reduce()方法:它用于把Array的某些元素通过函数进行累加,返回最终的结果。
语法:arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
例子:
var arr = [1,2,3,4,5]; var result = arr.reduce(function(accumulator, currentValue){ return accumulator + currentValue; }); console.log(result); // 15
find()方法:它用于把Array的某些元素通过函数查找,返回第一个满足条件的元素。
语法:arr.find(callback(element[, index[, array]])[, thisArg])
例子:
var arr = [1,2,3,4,5]; var result = arr.find(function(item){ return item > 3; }); console.log(result); // 4
some()方法:它用于把Array的某些元素通过函数检测,只要有一个满足条件,就返回true,否则返回false。
语法:arr.some(callback(element[, index[, array]])[, thisArg])
例子:
var arr = [1,2,3,4,5]; var result = arr.some(function(item){ return item > 3; }); console.log(result); // true
every()方法:它用于把Array的某些元素通过函数检测,只要有一个不满足条件,就返回false,否则返回true。
语法:arr.every(callback(element[, index[, array]])[, thisArg])
例子:
var arr = [1,2,3,4,5]; var result = arr.every(function(item){ return item > 3; }); console.log(result); // false
includes()方法:它用于把Array的某些元素通过函数检测,如果Array中包含给定的值,就返回true,否则返回false。
语法:arr.includes(valueToFind[, fromIndex])
例子:
var arr = [1,2,3,4,5]; var result = arr.includes(3); console.log(result); // true
JavaScript中有很多数组过滤方法,每种方法都有不同的用法,根据不同的需求,可以选择合适的方法使用。