Nodejs Array Reduce reduce(testFunction,initialValue)

Here you can find the source of reduce(testFunction,initialValue)

Method Source Code

// Reduce always returns an array with one item


Array.prototype.reduce = function(testFunction,initialValue){
   var accumulatedValue,counter;
   if(this.length == 0){
      return this;
   }else{/*from  w  w  w.  ja  v a  2 s  .co  m*/
      if(arguments.length == 1){
         counter = 1;
         accumulatedValue = this[0];
      }else if(arguments.length >= 2){
         counter = 0;
         accumulatedValue = initialValue;
      }else{
         throw 'Invalid arguments.'
      }

      while(counter < this.length){
         accumulatedValue = testFunction(accumulatedValue,this[counter]);
         counter++;
      }
      return [accumulatedValue];
   }

}

Related

  1. 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;
    ...
    
  2. 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] );
    ...
    
  3. 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);
      });
    ...
    
  4. reduce(reducingFunction, initialValue)
    Array.prototype.reduce = function(reducingFunction, initialValue) {
      var result = initialValue;
      this.forEach(function(x) {
        reducingFunction(result, x)
      });
      return result;
    
  5. reduce(t, fn)
    Array.prototype.reduce = function(t, fn) {
      for(var i = 0 ; i < this.length ; i++) {
        t = fn(t, this[i])
      return t
    
  6. 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){
    ...
    
  7. 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){
    ...
    
  8. reduce.call(str, (trav, char)>
    'use strict';
    class PrefixTree {
        constructor() {
            this.root = {};
        insert(str) {
            Array.prototype.reduce.call(str, (trav, char) => {
                if (!trav[char]) {
                    trav[char] = {};
    ...
    
  9. reduceRight(aggregate, initial)
    Array.prototype.reduceRight = function(aggregate, initial) {
      const len = this.length;
      let startIndex = len - 1;
      if(typeof initial === 'undefined') {
        initial = this[0];
        startIndex = len - 2;
      for(let i = startIndex; i >= 0; i -= 1) {
        initial = aggregate(initial, this[i], i, this);
    ...