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

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

程序员文章站 2024-02-14 18:53:28
...

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)

代码运行的结果为:
了解 map( ) 、filter( )、reduce()、foreach()的用法
好通过以上的例子我们来总结特点:

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人效果就明显了。
了解 map( ) 、filter( )、reduce()、foreach()的用法

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

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了~~~~~~~

感谢各位,给个赞呗~~~~

相关标签: ES6 数组