JavaScript中的reduce()如何使用
下面我们来看具体的内容。
假设我们有一个这样的数组:
var numbers = [1,2,3,4,5,6,7,8,9]; var strings = ['苹果','香蕉','梨子','葡萄','荔枝'];
在这个例子中,我们准备了一个存储数字数据的数组和一个存储字符串数据的数组。
使用reduce()最明显的方法是计算存储在这种数组中的所有值的值。
如果是数值,则可以计算求和值,如果是字符,则可以将单个字符串连接在一起。
下面我们来看如何使用reduce()?
reduce()可以在目标数组上执行任意函数。
数组.reduce(function(累积值, 元素) { })
第一个参数的“累积值”表示通过按顺序处理数组元素获得的值。
第二个参数“元素”表示当前处理的数组元素。
在该函数中使用“return”,通过返回任意处理,结果保留在累积值中,最后可以获得一个值。
我们来看具体的示例
对数组的每个元素求和
代码如下
var numbers = [1,2,3,4,5,6,7,8,9]; var result = numbers.reduce(function(a, b) { return a + b; }) console.log(result);
运行结果如下
在此示例中,对存储1到9的数字的数组执行reduce()。
在函数中,您可以看到累加的值和每个元素都被简单地添加。
在第一次处理中变为“1 + 2”,将和存储在累积值中,并在下一次处理中执行“3 + 3”。
通过这样做,运行结果输出所有值相加为“45”。
最后我们需要说明一点:
reduce()的函数中使用“break”中断处理的方法是不可以的,因此作为替代方案,存在利用数组的索引号的中断方法,我们下面来简单看一下。
实际上,reduce()的函数中最多可以有四个参数。
配列.reduce(function(累积值, 元素, 索引号, 数组) { })
第三个参数“索引号”表示当前处理的数组的索引号。
第四个参数“数组”表示当前正在处理的数组本身。
利用这个参数,可以如下来实现中断过程!
var numbers = [1,2,3,4,5,6,7,8,9]; var result = numbers.reduce(function(a, b, index, arr) { if(index >= 3) arr.splice(1); return a + b; }); console.log(result);
运行结果如下
请注意reduce()函数中的IF语句!
通过在条件表达式中描述 “index> = 3”,当它成为数组的第三个索引号时,可以执行任意处理。
该过程变为“arr.splice(1)”,并删除第三个索引之后的所有数组元素。
因此,reduce()的处理将结束,因此您可以执行与“break”相同的功能。
以上就是JavaScript中的reduce()如何使用的详细内容,更多请关注其它相关文章!