码迷,mamicode.com
首页 > 其他好文 > 详细

Array.prototype.reduce()

时间:2017-08-11 12:24:43      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:object   att   跳过   注意   cal   ret   turn   code   error   

原文出处:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

语法:arr.reduce(callback,[ initialValue])

var total = [0, 1, 2, 3].reduce(function(sum, value) {
      return sum + value;
    }, 1);
    console.log(total);//7

    var flattened = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) {
      return a.concat(b);
    });
    console.log(flattened);//[0, 1, 2, 3, 4, 5]

reduce对数组中存在的每个元素执行一次回调函数,排除数组中的空格,接收四个参数:

  • accumulator
  • currentValue
  • currentIndex
  • array

第一次调用callback时,accumulator 和currentValue可以是两个值之一。如果在调用reduce中提供initialValue,则累加器将等于initialValue,而currentValue将等于数组中的第一个值。如果没有提供initialValue,则累加器将等于数组中的第一个值,而currentValue将等于第二个值。

注意:如果未提供initialValue,则reduce将执行回调函数,从索引1开始,跳过第一个索引。如果提供了initialValue,它将从索引0开始。

如果数组为空且没有提供initialValue,则将抛出TypeError。如果数组只有一个元素(不管位置),并且没有提供initialValue,或者如果提供了initialValue,但数组为空,则将返回那个元素的值而不调用回调。

Array.prototype.reduce()

标签:object   att   跳过   注意   cal   ret   turn   code   error   

原文地址:http://www.cnblogs.com/RainZheng/p/7345130.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!