js函数之map与reduce

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js函数之map与reduce相关的知识,希望对你有一定的参考价值。

  最近逛freecode看到了这两个数组的方法,傻傻的理不清,赶紧总结一波。

  map(callback)函数会迭代数组中的所有元素,并根据callback进行处理,最后会返回一个新数组。而回调函数callback支持多个参数包括元素的值val,数组arr以及数组下标index。

  比如我们如果要将数组的每一项平方,就可以用如下代码实现:

var arr = [1,2,3];
var after = arr.map(function(val){
	return val*val;
})

  并且如果我们console.log(arr)会发现arr没有改变,这也证实了map方法不会改变原数组。

  

 reduce(function(previousVal, currentVal){},[origin])相比而言看起来比较复杂,并且特殊的是它还有一个可选的参数。其实orgin表示的是previousVal的初值,而previousVal就相当于一个累加器,currentVal表示数组的当前值。若不设置origin的值,previousVal就为数组第一项的值。反之previousVal为origin的值

  如果我们要将数组所有项累加,除了用for循环我们还可以使用reduce函数。

var arr = [1,3,4,5];
arr.reduce(fucntion(previousVal,currentVal){
    return previousVal+currentVal;
});

   

以上是关于js函数之map与reduce的主要内容,如果未能解决你的问题,请参考以下文章

Python 之内置函数:filter、map、reduce、zip、enumerate

Python入门之经典函数实例——第3关:Map-Reduce - 映射与归约的思想

Python入门之经典函数实例——第3关:Map-Reduce - 映射与归约的思想

几个关于js数组方法reduce的经典片段

几个关于js数组方法reduce的经典片段

Amazon Elastic Map Reduce:输入片段大小是不是重要