JS Array.reduce()方法参数详解,实例在线编辑
reduce()方法
JavaScript内置的数组Array方法reduce()可以将传递的回调函数逐个作用于调用对象数组中的每一个元素,并返回单个值。有点类似于通过for循环遍历数组,并求数组元素的总和的原理,即将初始值设为0,然后与第一个元素相加,所得之和再与第二个元素相加,以此类推,直到遍历整个数组的元素,求出数组的元素总和。注意:reduce()返回的单个值不一定是和,也可以是其它的运算得到的值,需依回调函数的算法而定。
reduce()语法及回调函数参数结构
arr.reduce( myFunc, initialValue)
其中回调函数myFunc的语法及参数结构如下:
myFunc( total, value, index, array )
reduce()参数结构解析表
参数 | 描述 |
---|---|
total | 必须参数,为初始值,也是reduce()方法调用后的返回值。 |
value | 也是必须参数,为调用对象数组的当前元素值 |
index | 可选,调用对象数组当前元素的索引 |
array | 可选,调用对象数组本身 |
initialValue | 可选,指定传递给回调函数的初始值 |
reduce()实例代码,及在线编辑器
<script>
var arr1 = [1,3,5]
function myFunc(total, value, index, array){
return total + value
}
var total1 = arr1.reduce(myFunc)
alert(total1 + ' 类型为:'+typeof(total1))
var total2 = arr1.reduce(myFunc, 6)
alert(total2)
alert(arr1) //reduce()方法并没有修改原数组的值
</script>
实例代码解析
如上代码,数组arr1第一次调用reduce()方法时,只传递了一个回调函数,返回值为return total+value,在该实例的代码当中可求数组之和,得到的是9;第二次调用reduce()方法时,多传递了一个指定回调函数total初始值的参数。