【筆記2】

reduce的使用

var sum = [0, 1, 2, 3].reduce(function (accumulator, currentValue) {
  return accumulator + currentValue;
}, 0);
// 和爲 6
複製代碼

reduce的使用1

var sum = [0, 1, 2, 3].reduce(function (accumulator, currentValue) {
  return accumulator + currentValue;
});
// 和爲 6
複製代碼

reduce的使用2

var initialValue = 0;
var sum = [{x: 1}, {x:2}, {x:3}].reduce(function (accumulator, currentValue) {
    return accumulator + currentValue.x;
},initialValue)

console.log(sum) // logs 6
複製代碼

省略一堆reduce的好玩操做

。。。。。。this

reduce的實現原理

Array.prototype.reduce2 = function(callback /*, initialValue*/) {
 
  var o = Object(this);
  var len = o.length >>> 0; 

  var k = 0; 
  var value;

  if (arguments.length >= 2) {
    value = arguments[1];
  } else {
    value = o[k++];
  }

  while (k < len) {
    if (k in o) {
      value = callback(value, o[k], k, o);
    }

    k++;
  }

  return value;
}複製代碼
相關文章
相關標籤/搜索