虽然编程世界采用功能编程范例,但JavaScript并未落后。实际上,该语言为促进功能风格的一些最有效的方法量身定制。
今天,我们将深入研究三种方法:地图,过滤和减少。这些阵列方法是操纵JavaScript中数据的本质,并且了解它们对于任何有抱负的开发人员都至关重要。
1。地图:变压器
在其核心上,地图方法是关于转换的。给定数组,MAP将函数应用于其每个元素,返回转换的元素的新数组。
let numbers = [1, 2, 3, 4, 5];
let doubled = numbers.map(n => n * 2);
console.log(doubled); // [2, 4, 6, 8, 10]
将map
视为工厂装配线。通过该行的每个项目(或元素)以相同的方式进行修改或转换。
2。过滤器:守门人
map
转换的地方,filter
屏幕。它在条件下评估每个元素,返回条件为真的新元素。
let numbers = [1, 2, 3, 4, 5];
let evens = numbers.filter(n => n % 2 === 0);
console.log(evens); // [2, 4]
Filter
类似于俱乐部的门卫,只允许满足特定标准的个人。
3。减少:累加器
虽然map
和filter
返回阵列,但reduce
更加灵活。它通过元素遍历数组元素,累加结果。
let numbers = [1, 2, 3, 4, 5];
let sum = numbers.reduce((acc, curr) => acc + curr, 0);
console.log(sum); // 15
将reduce
视为滚雪球从山上滚下来,在下降时收集了更多的雪(数据)。
这三个如何一起工作
合并后,这些方法可以创建强大的数据操纵工作流。在这里看将它们链在一起:
let numbers = [1, 2, 3, 4, 5];
let doubledEvens = numbers
.filter(n => n % 2 === 0)
.map(n => n * 2)
.reduce((acc, curr) => acc + curr, 0);
console.log(doubledEvens); // 12
此链式读取为:从数字中,滤除evens,加倍,然后将它们总结。
这种封闭方法的美在于它捕获了JavaScript中功能编程的本质。它展示了一种声明性的编程风格,您可以在其中指定要使用数据而不是如何做的方式。每个步骤都是一个清晰的功能数据转换,使代码更具可读性和表现力。
结论
映射,过滤并减少方法;他们是一种思维方式,是JavaScript中编程的功能方法。
作为开发人员,如果您了解了这些想法,您将改善编码方式,并准备在将来采用更复杂的功能编程方法。