1. 程式人生 > >Array.prototype.reduce()

Array.prototype.reduce()

函數 tor 參數 ons 累加 回調函數 rip 第一個 javascrip

原文出處: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()