Nodejs Array Reduce reduce(fun /* , initial */)

Here you can find the source of reduce(fun /* , initial */)

Method Source Code

/* -*- Mode: Javascript -*-
 * -*- coding: UTF-8 -*-/*from  www.  j ava 2  s. c o m*/
 * Copyright (C) 2010 by Artur Ventura
 *
 * File: arrayFixs.js
 * Time-stamp: Wed Jan 20 14:02:42 2010
 *
 * Author: Artur Ventura
 */
 
if (!Array.prototype.reduce) {
   Array.prototype.reduce = function(fun /* , initial */) {
      var len = this.length >>> 0;
      if (typeof fun != "function")
         throw new TypeError();

      // no value to return if no initial value and an empty array
      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 array contains no values, no initial value to return
            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;
   };
}
Array.prototype.toString = function (){
    return "[" + this.reduce(function (x,y) { return x + "," + y }) + "]";
}

Related

  1. reduce(f, value)
    var data = [ 4, 8, 15, 16, 23, 42 ];
    Array.prototype.reduce = function(f, value) {
        var i;
        for (i = 0; i < this.length; i += 1) {
            value = f(this[i], value);
        return value;
    };
    var add = function(a, b) {
    ...
    
  2. reduce(f, value)
    var is_array_01 = function (value) {
      return value &&
        typeof value === 'object' &&
        value.constructor === Array;
    };
    var is_array = function (value) {
      return value &&
        typeof value === 'object'  &&
        typeof value.length === 'number'  &&
    ...
    
  3. reduce(f, value)
    Array.prototype.reduce = function(f, value) {
        var i;
        for (i = 0; i < this.length; i += 1) {
            value = f(this[i], value);
        return value;
    };
    var data = [ 4, 8, 15, 16, 23, 42 ];
    var add = function(a, b) {
    ...
    
  4. reduce(fn, initial)
    Array.prototype.reduce = function(fn, initial)
        var r, i;
        initial ? r = initial : r = this[0];
        for (i=1;i<this.length;i++)
            r = fn(r, this[i]);
        return r;
    ...
    
  5. 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) => {
    ...
    
  6. 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;
    };
    
  7. 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;
    ...
    
  8. 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;
    ...
    
  9. reduce(process, initial)
    Array.prototype.reduce = function(process, initial) {
      var value = initial;
      for (var i = 0; i < this.length; i++) {
        if( ( i === 0 ) && ( value === undefined || value === null ))
            value = this[0];
            continue;
        value = process( value, this[i] );
    ...