欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

array的reduce

程序员文章站 2022-07-14 09:30:43
...

 

    ES5 (js 1.8)加入了 reduce

 

    接收一个函数,然后从左到右遍历item,直到reduce到一个值。

 

arr.reduce(callback, [initialValue]);

 

   参数:

 

  • callback(previousValue, currentValue, index, array)
  1. previousValue   如果指定了initialValue,那就用initialValue 或者 是上一次循环返回的值
  2. currentValue      当前执行到的数组的值
  3. index                   当前执行到的数组的下标
  4. array                    执行reduce的array

 

 

  • initialValue

     callback 调用时候的第一个参数

 

 

   我们来直观地看一个例子:

 


    array的reduce
            
    
    博客分类: js-array arrayes5reduce 
 

 

   第一次执行的reduce里面的callback的arguments的情况:

 


    array的reduce
            
    
    博客分类: js-array arrayes5reduce 
 

  我们看到,如果你指定了initialValue的化,第一次执行的时候,callback的第一个参数就是它,而index为0

 

 

 

   那如果没有指定initialValue呢?

 

 

     array的reduce
            
    
    博客分类: js-array arrayes5reduce 

 


     array的reduce
            
    
    博客分类: js-array arrayes5reduce 
 

   如果没有指定initialValue的化,第一次执行previousValue取arr[0],然后index为1

 

 

 

    那说了这么多,它有没有什么用?

 

 

  • 把一个数组里面的数字做加法:

 

 

[1,2,3,4].reduce(function(a, b) {
   return a + b;
});

 

 

  • 合并二维数组:
[[0,1], [2,3], [4,5]].reduce(function(a, b) {
    return a.concat(b);
});

 

 

  扩展阅读:

 

   http://msdn.microsoft.com/zh-cn/library/ie/ff679975(v=vs.94).aspx

 


 

  • array的reduce
            
    
    博客分类: js-array arrayes5reduce 
  • 大小: 9.7 KB
  • array的reduce
            
    
    博客分类: js-array arrayes5reduce 
  • 大小: 9.9 KB
  • array的reduce
            
    
    博客分类: js-array arrayes5reduce 
  • 大小: 7.9 KB
  • array的reduce
            
    
    博客分类: js-array arrayes5reduce 
  • 大小: 10.5 KB
相关标签: array es5 reduce