JavaScript 如何对Set元素进行映射、缩减和过滤
map()、reduce() 和 filter() 是数组函数,根据应用的函数来转换数组并返回更新后的数组。它们用于编写简单、简洁的代码,以修改数组而不是使用循环。
- map()方法: 它在数组的所有元素上应用给定的函数,并返回更新后的数组。它是简单和更短的代码,而不是使用循环。map方法类似于以下代码:
function product(a, b){
return a * b;
}
arr = new Array(1, 2, 3, 6, 5, 4);
var product_of_arr = arr.reduce(product)
console.log(product_of_arr)
语法:
array.map(要应用的函数)
array.map(function(args) {
// 代码;
})
示例:
arr = new Array(1, 2, 3, 6, 5, 4);
new_arr = {} for(let i = 0; i < 6; i++) { if(arr[i] % 2 == 0) { new_arr.push(arr[i]); } }
输出:
[ 2, 6, 4 ]
- reduce()方法: 它通过重复应用函数将数组的所有元素减少为单个值。它是使用循环和更新每个扫描的元素的结果的替代方法。reduce可以用来代替以下代码:
arr = new Array(1, 2, 3, 6, 5, 4);
var new_arr = arr.filter(function(x){ return x % 2==0; });
console.log(new_arr)
语法:
array.reduce(要应用的函数)
array.reduce(function(args) {
// 代码;
})
示例:
输出:
720
- filter()方法: 它过滤数组中返回应用条件为false的元素,并返回包含满足应用条件的元素的数组。它是一个简单和更短的代码,而不是使用循环以下的代码:
sarr = new Array(1, 2, 3, 6, 5, 4);
snew_arr = {} for(let i = 0; i < 6; i++) { if(arr[i] % 2 == 0) { new_arr.push(arr[i]); } }
语法:
array.filter(要应用的函数)
array.filter(function(args) {
// 条件;
})
示例:
arr = new Array(1, 2, 3, 6, 5, 4);
var new_arr = arr.filter(function(x){ return x % 2==0; }); console.log(new_arr)
输出:
[ 2, 6, 4 ]