首页 > 其他分享 >map( ) 、filter( )、reduce()、foreach()的用法

map( ) 、filter( )、reduce()、foreach()的用法

时间:2023-07-19 13:44:19浏览次数:30  
标签:map return index reduce filter item num 数组

map( ) 、filter( )、reduce()、foreach()的用法详解
今天给大家总结一下ES6中的军训数组的新方法。话不多说,开车 跟住思路肯定能懂的

1. map()
map =====> 映射

我们通过一段代码来看看,这是一段简单的map()循环的代码 参数:item(数组元素)、index(序列)、arr(数组本身)

 let num = [100, 70, 20]
 let result= num.map((item,index) => { 
  
     if(item>=60){
         return '及格'+index
     }else{
         return '不及格'+index
       }
   })
  alert(result)

  

代码运行的结果为:

好通过以上的例子我们来总结特点:

1、创建新数组

2、不改变原数组

3、输出的是return什么就输出什么新数组

4、回调函数参数,item(数组元素)、index(序列)、arr(数组本身)。:上边的例子里没有第三个参数是可以的

5、使用return操作输出,会循环数组每一项,并在回调函数中操作

2.filter()
filter ========> 过滤器

这个是用来过滤掉数组里边不符合规定的元素。来我们继续来看例子,甲乙丙三个人的成绩是如下 我们要挑出谁及格了。参数:item(数组元素)、index(序列)、arr(数组本身)

let num = [100, 70, 20]
let result = num.filter(item=>item>=60)
alert(result)

  

结果为:大家可能觉得这一眼就能看出来,那么全校有1w人效果就明显了。


好通过以上的例子我们来总结特点:

1、创建新数组

2、不改变原数组

3、输出的是判断为true的数组元素形成的新数组

4、回调函数参数,item(数组元素)、index(序列)、arr(数组本身)

5、使用return操作输出,会循环数组每一项,并在回调函数中操作

3.reduce()
reduce =========> 汇总

我们可以通过reduce()来计算一组数组的平均值,总和等信息,参数: tmp(第一次为数组第一项,之后为上一操作的结果) item(数组的下一项) index(next项的序列) arr(数组本身)

let num = [100, 70, 20]
  let result = num.reduce((tmp,item,index)=>{
    if(index==num.length-1){
        return (tmp+item)/num.length
    }
    else{
        return item+tmp   
     }
  }
  alert(result)

  

因为计算机计算加法:也是两两相加所以上文例子中,先计算100+70 在计算 170 +20 才能得到结果,最后取得平均值 结果就不给大家显示了 就是 190/3的平均值(是啥额63吗 除不开啊…随便写的数字)

特点:

1、创建新数组

2、不改变原数组

3、输出的是return叠加什么就输出什么 新数组

4、回调函数参数 参数 tmp(第一次为数组第一项,之后为上一操作的结果) item(数组的下一项) index(next项的序列) arr(数组本身) 回调函数后的改变第一项参数。(不影响原数组)

5、使用return操作输出,会循环数组每一项,并在回调函数中操作

4.foreach()
forEach =========> 循环

上段小代码

let num = [100, 70, 20]
     let result = num.forEach((value, index) => {
         alert(value + '----------' + index)
     })

  

结果:

100-------------------0
70 -------------------1
20 -------------------2

特点:

1.遍历数组全部元素,利用回调函数对数组进行操作

2.自动遍历数组.length次数,且无法break中途跳出循环不可控

3.不支持return操作输出,return只用于控制循环是否跳出当前循环

4.因此难操作成新数组,新值

map( ) 、filter( )、reduce()、foreach()的方法讲解就OK了~~~~~~~

标签:map,return,index,reduce,filter,item,num,数组
From: https://www.cnblogs.com/dtdxrk/p/17565354.html

相关文章

  • docker 23 使用devicemapper
    Docker23使用devicemapperDocker是一种容器化平台,可以帮助开发者更轻松地构建、打包和分发应用程序。其中的devicemapper是一种存储驱动,用于管理Docker容器的镜像和数据。本文将介绍如何使用devicemapper驱动程序来管理Docker23版本中的容器。什么是devicemapper?devicemapper......
  • C# 程序中使用AutoMapper实体映射
     我的开发环境framework为4.7.2添加AutoMapper9.0引用创建实体映射公共类publicclassAutoMapperUnity{publicstaticIMapperautoMapperTool;publicAutoMapperUnity(){autoMapperTool=AutoMapperUnit......
  • Asp.Net Core 实现异步操作锁 (SemaphoreSlim)
    /设置同时访问线程最大数量staticSemaphoreSlim_semaphore=newSemaphoreSlim(4);staticvoidAccessDatabase(stringname,intseconds){Console.WriteLine($"{name}waitstoaccessadatabase");_semaphore.Wait();Console.WriteLine($"{name}wa......
  • 多线程开发 使用Semaphore和BoundedSemaphore对象
    多线程开发使用Semaphore和BoundedSemaphore对象一、使用Semaphore和BoundedSemaphore对象在Python中,可以使用Semaphore和BoundedSemaphore来控制多线程信号系统中的计数器。1.Semaphore在Python程序中,类threading.Semaphore是一个信号机,控制着对公共资源或者临界区的访问......
  • HashMap
    基本数据结构数组、链表和红黑树,链表长度大于等于8转化红黑树,链表长度小于等于6退化成链表,中间隔一个7是为了防止数据结构频繁转化,扩容因子0.75初始化方法 put方法第一步封装Node节点,key和value都在里面否则直接hash运算得到数组下标,把值放进去如果达到扩容的阈值,先扩容......
  • python建立一个map
    如何用Python建立一个Map在Python中,我们可以使用字典(dictionary)来实现类似于Map的功能。字典是一种无序的键值对集合,其中每个键都是唯一的,可以通过键来访问对应的值。下面是建立一个Map的整个流程。首先,我们需要创建一个空字典,然后逐步添加键值对。最后,我们可以通过键来访问字典......
  • List Map 排序
    importjava.util.*;publicclassTest{publicstaticvoidmain(String[]args){List<Map<String,Object>>list=newArrayList<>();Map<String,Object>item1=newHashMap<>();item1.put("ti......
  • 防缓存穿透利器-布隆滤器(BloomFilter)
    布隆过滤器1、布隆过滤器原理1.1什么是布隆过滤器1.2使用场景1.3原理1.4布隆过滤器的优缺点2、实现方式2.1初始化skuId的布隆过滤器2.1.1RedisConst常量类2.1.2修改启动类2.2给商品详情页添加布隆过滤器1、布隆过滤器原理1.1什么是布隆过滤器......
  • ElasticSearch-Mapping类型映射-增删改查
    https://www.elastic.co/guide/en/elasticsearch/reference/6.8/mapping.html7.x版本后默认都是_doc类型增加Mapping映射先说一个特殊的字段_all:https://www.elastic.co/guide/en/elasticsearch/reference/6.8/mapping-all-field.html#mapping-all-field_all字段是一个特......
  • MapReduce实现TopN的效果
    1、背景最近在学习Hadoop的MapReduce,此处记录一下如何实现TopN的效果,以及在MapReduce中如何实现 自定义分组。2、需求我们有一份数据,数据中存在如下3个字段,订单编号,订单项和订单项价格。输出的数据,需求如下:订单编号与订单编号之间需要正序输出。输出每个订单价格最高的2......