手机版

JavaScript的map reduce _ Power NodeJava学院完成

时间:2021-09-04 来源:互联网 编辑:宝哥软件园 浏览:

如果你读过谷歌著名的论文《大型集群上的MapReduce :简化数据处理》,大概就能理解map/reduce的概念了。

地图

例如,如果我们有一个函数f(x)=x2,如果我们想将这个函数应用于一个数组[1,2,3,4,5,6,7,8,9],我们可以使用map来实现以下内容:

由于map()方法是在JavaScript的Array中定义的,我们调用Array的map()方法,传入我们自己的函数,得到一个新的Array作为结果:

函数幂(x){ return x * x;}var arr=[1,2,3,4,5,6,7,8,9];arr . map(pow);//[1,4,9,16,25,36,49,64,81]map()传入的参数是pow,它是函数对象本身。您可能认为可以不用map()编写循环来计算结果:

var f=函数(x){ return x * x;};var arr=[1,2,3,4,5,6,7,8,9];var结果=[];for(var I=0;长度;I){ result . push(f(arr[I]);}是的,但是从上面的循环代码中,我们不能一目了然地理解“将f(x)应用于Array的每个元素,并根据结果生成一个新的Array”。因此,作为高阶函数,map()实际上抽象了运算规则,所以我们不仅可以计算简单的f(x)=x2,还可以计算任何复杂的函数,例如,将Array的所有数字转换为字符串:

var arr=[1,2,3,4,5,6,7,8,9];arr.map(字符串);//[“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”]只需要一行代码。

减少

看看reduce的用法。Array的reduce()将函数应用于[x1,x2,x3.]的数组,并且该函数必须接收两个参数。reduce()继续累积序列中下一个元素的结果,其效果是:

[x1,x2,x3,x4]。reduce (f)=f (f (f (x1,x2),x3),x4)例如,如果对一个Array求和,可以使用reduce:

var arr=[1,3,5,7,9];arr.reduce(函数(x,y){ return x y;});//25以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:JavaScript的map reduce _ Power NodeJava学院完成是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。