手机版

详细解释JavaScript中数组的缩减方法

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

介绍

让我们看一下这个方法的官方概述:reduce()方法接收一个函数作为累加器,数组中的每个值(从左到右)开始减少,最后变成一个值。

你一定和我一样有点困惑。事实上,reduce接收一个回调函数来调用数组中的每一项,直到数组结束。

举个例子,大家都会很理解。

假设我有一串用数字填充的数组。我想算出这些数字的总和。正常情况下,我们会循环,然后逐一添加。有了reduce,我们不必费心,只需使用一行代码。

var total=[0,1,2,3,4]。减少((a,b)=a b);//10这个方法是如何工作的?

Reduce接受一个带有四个参数的函数,即:

1、最后一个值;

2.当前值;

3.当前值的索引;

4.数组;

让我们以上面的数组为例,打印出这些参数来看看:

[0, 1, 2, 3, 4].reduce(函数(previousValue,currentValue,index,array){ return previousValue currentValue;});结果是:

分析这个结果,这个回调函数总共被调用了四次。因为第一次没有previousValue,所以直接从数组的第二项开始,只调用到数组的末尾。

Reduce还有第二个参数。我们可以在第一次调用回调时使用这个参数作为第一个参数。在上面的例子中,因为没有第二个参数,所以直接从数组的第二项开始。如果我们给第二个参数5,那么结果如下:

[0, 1, 2, 3, 4].reduce(函数(previousValue,currentValue,index,array){ return previousValue currentValue;},5);

第一次调用的previousValue的值被传入的第二个参数替换,函数被调用五次,这是数组的长度。

减少可以帮助我们轻松完成许多事情,除了积累,还有扁平化的二维数组:

var扁平化=[[0,1],[2,3],[4,5]]。reduce(函数(a,b){ return a . concat(b);}, []);//平面化==[0,1,2,3,4,5]摘要

这是我暂时能想到的仅有的两个常用的,但是用的地方肯定很多。以上就是本文的全部内容。希望这篇文章的内容对你的学习或工作有所帮助。有问题可以留言交流。

版权声明:详细解释JavaScript中数组的缩减方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。