Nodejs Array Reduce reduce(process, initial)

Here you can find the source of reduce(process, initial)

Method Source Code

Array.prototype.reduce = function(process, initial) {
  var value = initial;
  for (var i = 0; i < this.length; i++) {
    if( ( i === 0 ) && ( value === undefined || value === null ))
    {/*from  ww w. j av a 2  s .  c om*/
        value = this[0];
        continue;
    }
    value = process( value, this[i] );
  }
  return value;
};

Related

  1. reduce(fn, initialValue)
    Array.prototype.reduce = function (fn, initialValue) {
      let acc = initialValue
      for (var i = 0; i < this.length; i++) {
        acc = fn(acc, this[i], i)
      return acc
    Array.prototype.forEach = function (fn) {
      this.reduce((acc, curr, i) => {
    ...
    
  2. reduce(fun /* , initial */)
    if (!Array.prototype.reduce) {
      Array.prototype.reduce = function(fun ) {
        var len = this.length >>> 0;
        if (typeof fun != "function")
          throw new TypeError();
        if (len == 0 && arguments.length == 1)
          throw new TypeError();
        var i = 0;
        if (arguments.length >= 2) {
    ...
    
  3. reduce(fun /*, initial*/)
    Array.prototype.reduce = function(fun )
      var len = this.length;
      if (typeof fun != "function") {
        throw new TypeError();
      if (len == 0 && arguments.length == 1) {
        throw new TypeError();
      var i = 0;
      if (arguments.length >= 2) {
        var rv = arguments[1];
      } else {
        do {
          if (i in this) {
            rv = this[i++];
            break;
          if (++i >= len) {
            throw new TypeError();
        } while (true);
      for (; i < len; i++) {
        if (i in this) {
          rv = fun.call(null, rv, this[i], i, this);
      return rv;
    };
    
  4. reduce(fun /*, initial*/)
    Array.prototype.reduce = Array.prototype.reduce || function(fun ) {
        var len = this.length >>> 0;
        if (typeof fun != "function") {
            throw new TypeError();
        if (len == 0 && arguments.length == 1) {
            throw new TypeError();
        var i = 0;
    ...
    
  5. reduce(pasteback, initial)
    'use strict';
    Array.prototype.reduce = function(pasteback, initial){
      for(var i = 0
          , c =  this.length
          , value = arguments.length>1 ? initial : this[i++]
      ; i<c; i++){
        value = pasteback(value, this[i], i, this);
      return value;
    ...
    
  6. reduce(process, initial)
    Array.prototype.reduce = function(process, initial) {
      if (initial === undefined) {
        var slice = this.slice(1);
        initial = this[0];
      var array = slice || this;
      array.forEach(function(value) {
        initial = process(initial, value);
      });
    ...
    
  7. reduce(reducingFunction, initialValue)
    Array.prototype.reduce = function(reducingFunction, initialValue) {
      var result = initialValue;
      this.forEach(function(x) {
        reducingFunction(result, x)
      });
      return result;
    
  8. reduce(t, fn)
    Array.prototype.reduce = function(t, fn) {
      for(var i = 0 ; i < this.length ; i++) {
        t = fn(t, this[i])
      return t
    
  9. reduce(testFunction,initialValue)
    Array.prototype.reduce = function(testFunction,initialValue){
      var accumulatedValue,counter;
      if(this.length == 0){
        return this;
      }else{
        if(arguments.length == 1){
          counter = 1;
          accumulatedValue = this[0];
        }else if(arguments.length >= 2){
    ...