js选出给定数组中所有的偶数/奇数/n的倍数(filter)
1.选出给定数组中所有的偶数
用for
function collect_all_even(collection) {
let res = [];
for (let i of collection) {
if (i % 2 === 0) {
res.push(i);
}
}
return res;
}
用filter
function collect_all_even(collection) {
return collection.filter((x) => x % 2 === 0);
}
2.选出给定数组间中所有的奇数
将上面代码中的条件修改为 x % 2 === 1即可
3.选出给定数组间中n的倍数
将上面代码中的条件修改为 x % n === 0即可
filter() 方法
filter() 方法创建一个新数组, 其包含通 过所提供函数实现的测试的所有元素。
语法
var newArray = arr.filter(callback(element[, index[, array]])[, thisArg])
callback
用来测试数组的每个元素的函数。返回 true 表示该元素通过测试,保留该元素,false 则不保留。它接受以下三个参数:
1. element 元素的值
2. index可选元素的索引
3. array可选被遍历的数组本身
thisArg可选
执行 callback 时,用于 this 的值。
返回值
一个新的、由通过测试的元素组成的数组,如果没有任何数组元素通过测试,则返回空数组。
filter 不会改变原数组,它返回过滤后的新数组