随着 JavaScript 的飞速发展,更多的功能性编程语法被应用到 JavaScript 中。在 ECMAScript 2019 中,map、filter 和 reduce 是功能性编程语法的代表性特征,可以用来处理数组和对象,让代码更加简洁和易维护。
Map
Map 可以把数组中的每个元素都转换一遍,返回一个新的数组。下面是 map 的语法:
arr.map(callback[, thisArg])
其中,callback 是处理每个元素的函数,thisArg 是 callback 函数执行时的上下文。callback 函数有三个参数:当前元素、当前元素的索引、原数组。
下面是一个例子,把一个数字数组的每个元素都加上 1:
const nums = [1, 2, 3]; const newNums = nums.map((num) => num + 1); console.log(newNums); // [2, 3, 4]
Filter
Filter 可以根据条件过滤出数组中符合条件的元素,返回一个新的数组。下面是 filter 的语法:
arr.filter(callback[, thisArg])
其中,callback 是根据条件过滤元素的函数,thisArg 是 callback 函数执行时的上下文。callback 函数有三个参数:当前元素、当前元素的索引、原数组。
下面是一个例子,把一个数字数组中大于 2 的元素过滤出来:
const nums = [1, 2, 3]; const newNums = nums.filter((num) => num > 2); console.log(newNums); // [3]
Reduce
Reduce 可以把数组中的每个元素进行累加计算,返回一个结果值。下面是 reduce 的语法:
arr.reduce(callback[, initialValue])
其中,callback 是计算结果的函数,initialValue 是初始值。callback 函数有四个参数:累加器、当前元素、当前元素的索引、原数组。
下面是一个例子,把一个数字数组中所有元素都相加:
const nums = [1, 2, 3]; const sum = nums.reduce((acc, num) => acc + num, 0); console.log(sum); // 6
总结
Map、filter 和 reduce 是 ECMAScript 2019 中的重要功能性编程语法,它们可以让数组和对象的处理更加简洁和易维护。如果你还没有熟练掌握这些语法,在写 JavaScript 代码时可以考虑使用它们。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64e8a04bf6b2d6eab3428fee