reduce是什么意思(担心JavaScript中的reduce函数)
如果有更好的建议或者想看更多关于综合百科技术大全及相关资讯,可以多多关注茶馆百科网。

Reduce函数让新手很头疼!有两大难点。一方面,参数如何构成一个函数?另一方面,为什么函数中有很多参数?他们是做什么的?
Reduce的字面意思是& quot减少& quot,理解为& quot归纳& quot和& quot合并& quot给你。
reduce的语法
首先,reduce的语法如下:由…改编Reudce (callback,[初始值]) reduce是array的一个方法,可以对数组的每个元素执行一个回调函数,也就是通过这个函数可以改变每个元素。通过使用reduce方法,可以让数组的每一项都执行一个回调函数。
回调函数中有四个参数,即:
PreviousValue表示最后一次回调调用返回的值(如果第一次调用是初始值)。currentValue当前数组中已处理的元素索引当前已处理元素的下标数组调用reduce方法的原始数组,初始值为第一次回调调用的初始参数。
分析两大参数
letarr=[1,3,5,7];let sum=arr . reduce(function(prev,current,index,arr) {console.log (prev,current,index)return prev current })console . log(sum)//16根据上面的过程,我们可以清楚地分析出各个参数的意义。当reduce传入回调时,初始prev值是数组的第一个元素,而当前值和索引值默认从arr[1]开始执行。
当下一个元素执行回调时,prev将成为前一个返回(prev current),当前和index将继续向下获取。
那么,有一个问题,为什么一个长度为四的数组只执行三个元素的回调?initalValue的第二个参数的用途是什么?
所以引入了第二个参数initalValue。当添加initalValue参数时,可以获得以下结果。
letarr=[1,3,5,7];Letsum=arr。reduce (function (prev,current,index,arr) {console.log (prev,current,index)return prev current },10) console.log (sum)//26可以观察到,这次执行的是。原来第一个prev是我们传入的initalValue的值。
一些适用场景
reduce函数可用于许多场景,并执行一些数组转换,如下所示:累加和类乘法letarr=[1,3,5,7];let sum=arr . reduce(function(prev,current,index,arr){returnprev current},0)let mul=arr . reduce(function(prev,current,index,arr){returnprev*current},1)console.log(mul)//105二维数组到一位数组Letarr=[[1,2,3],[4,5],[6,7,8],9]let newarr=arr . reduce(function(a,b){ return concat。6,7,8,9]数组来复制Letarr=['apple '' pear '' lemon '' pear'] Letnewarr=arr。Reduce (function (prev,current) {if(!上一页。包括(当前){returnprev。concat(current)} else { return prev } },[])console . log(newarr)//[' apple '' pear '' lemon']统计数组元素出现的次数Letarr=[1,2,3]。3,5,7,8]let count=arr . reduce(function(prev,current){ if(prev[current]==undefined){ prev[current]=1 } else { prev[current]} return prev },{ })console . log(count)/{ 1:2,2:2,3:2,43:1,53:2,7:1,83:1 }以上就是reduce的用法以及拓展,如果觉得有帮助,欢迎收藏、评论、关注~
本文主要介绍了关于reduce是什么意思(担心JavaScript中的reduce函数)的相关养殖或种植技术,综合百科栏目还介绍了该行业生产经营方式及经营管理,关注综合百科发展动向,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解综合百科技术怎么管理的要点,是您综合百科致富的点金石。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://23.234.50.4:8411/article/100972.html