如何使用 JavaScript 映射、减少和过滤 Set 元素?
map()、reduce() 和 filter() 是数组函数,它们根据应用的函数转换数组并返回更新后的数组。它们用于编写简单、简短和干净的代码来修改数组,而不是使用循环。
- map() 方法:它将给定函数应用于数组的所有元素并返回更新后的数组。它是更简单、更短的代码,而不是循环。该地图类似于以下代码:
arr = new Array(1, 2, 3, 6, 5, 4); for(int i = 0; i < 6; i++) { arr[i] *= 3; }
句法:
array.map(function_to_be_applied)
array.map(function (args) { // code; })
例子:
function triple(n){ return n*3; } arr = new Array(1, 2, 3, 6, 5, 4); var new_arr = arr.map(triple) console.log(new_arr);
Output: [ 3, 6, 9, 18, 15, 12 ]
- reduce() 方法:它通过重复应用函数将数组的所有元素减少为单个值。它是使用循环并更新每个扫描元素的结果的替代方法。 Reduce 可以用来代替下面的代码:
arr = new Array(1, 2, 3, 6, 5, 4); result = 1 for(int i = 0; i < 6; i++) { result = result * arr[i]; }
句法:
array.reduce(function_to_be_applied)
array.reduce(function (args) { // code; })
例子:
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)
输出:
720
- filter() 方法:它过滤数组中对应用条件返回 false 的元素,并返回包含满足应用条件的元素的数组。它是一个更简单、更短的代码,而不是使用循环的以下代码:
arr = new Array(1, 2, 3, 6, 5, 4); new_arr = {} for(int i = 0; i < 6; i++) { if(arr[i] % 2 == 0) { new_arr.push(arr[i]); } }
句法:
array.filter(function_to_be_applied)
array.filter(function (args) { // condition; })
例子:
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 ]