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 - 映射与归约的思想