首页 > 其他分享 >array的reduce

array的reduce

时间:2023-06-25 21:02:13浏览次数:34  
标签:index initialValue reduce callback previousValue array


 

    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_microsoft


 

 

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

 

    

array的reduce_microsoft_02


 

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

 

 

 

   那如果没有指定initialValue呢?

 

 

     

array的reduce_array_03

 

     

array的reduce_es5_04


 

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);});


 

 


标签:index,initialValue,reduce,callback,previousValue,array
From: https://blog.51cto.com/u_16170312/6548649

相关文章

  • 关于Java中ArrayList类的toArray方法详解
    先上源码:publicObject[]toArray(){returnArrays.copyOf(elementData,size);}可以看到ArrayList类的toArray()方法调用了Arrays.copyOf(elementData,size)(其中的elementData是ArrayList类中用来存储对象的数组,size是数组大小),接下来进入其内部:publicsta......
  • arr.reduce函数的用法
    1.语法:reduce(function(total,currentValue,index,arr){},{})reduce接收两个参数,第一个参数是函数,第二个参数是第一个参数中total的初始值(1)第一个参数function中total就是初始值或者每次计算结束的返回值(必填)currentValue就是字面意思,每次循环......
  • ArrayList和LinkedList的区别详解
    感谢巨人的肩膀,原作者:https://blog.csdn.net/qing_gee/article/details/108841587/ArrayList和LinkedList有什么区别,是面试官非常喜欢问的一个问题。可能大部分小伙伴和我一样,能回答出“ArrayList是基于数组实现的,LinkedList是基于双向链表实现的。”关于这一点,我之前的......
  • UE5 C++ TArray
    概述TArray是UE4中最常用的容器类。其速度快、内存消耗小、安全性高TArray类型由两大属性定义:元素类型和可选分配器元素类型是存储在数组中的对象类型。TArray被称为同质容器。换言之,其所有元素均完全为相同类型。单个TArray中不能存储不同类型的元素。分配器常被省略,默......
  • 手撕ArrayList底层源码
    publicabstractclassAbstractList<E>extendsAbstractCollection<E>implementsList<E>{//外部操作数protectedtransientintmodCount=0;//2}publicclassArrayList<E>extendsAbstractList<E>implementsList<E>{......
  • [LeetCode] 2090. K Radius Subarray Averages
    Youaregivena 0-indexed array nums of n integers,andaninteger k.The k-radiusaverage forasubarrayof nums centered atsomeindex i withthe radius k istheaverageof all elementsin nums betweentheindices i-k and i+k (i......
  • 20230308 java.util.ArrayList
    简介java.util.ArrayListList接口的可调整大小的数组实现。源码中对数组的操作非常精彩,值得学习数组一旦初始化长度就不可以发生改变数组结构特点增删慢:每次删除元素,都需要更改数组长度、拷贝以及移动元素位置。查询快:由于数组在内存中是一块连续空间,因此可以根据地址......
  • Android 架构之 MVI 完全体 | 重新审视 MVVM 之殇,PartialChange & Reducer 来拯救
    作者:唐子玄MVI架构有三大关键词:“唯一可信数据源”+“单向数据流”+“响应式编程”,以及一些关键概念,比如Intent,State。理解这些概念之后,能更轻松地阅读本文。(强烈建议从第一篇开始阅读)引子在上一篇中,用MVI重构了“新闻流”这个业务场景。本篇在此基础上进一步拓展,引入MVI中......
  • Hadoop的mapper和reducer的个数如何确定?reducer的个数依据是什么?
    参考答案:map数量影响map个数(split个数)的主要因素有:文件的大小。当块(dfs.block.size)为128m时,如果输入文件为128m,会被划分为1个split;当块为256m,会被划分为2个split。文件的个数。FileInputFormat按照文件分割split,并且只会分割大文件,即那些大小超过HDFS块的大小的文件。如果HDFS中dfs......
  • php函数array_filter的用法
    //array_filter()它用于筛选数组中的元素,并返回满足指定条件的元素//遍历数组中的每个元素,并将其传递给回调函数进行判断。//如果回调函数返回true,则该元素被保留在结果数组中;如果返回false,则该元素被过滤掉。//参数说明://$array:要筛选的数组。//$callback:一个回......