数组方法map(映射),reduce(规约),foreach(遍历),filter(过滤)
map()方法返回一个由原数组中每一个元素调用一个指定方法后返回的新数组
reduce()方法接受一个函数作为累加器,数组中的每一个值开始缩减,最终为一个值。最终的返回结果为一个值
foreach() 遍历数组方法
filter() 方法使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组
 
map,filter都是生成一个新数组,不同的是map处理的方法里面returen 新数值,filter里面return true/false 
 
 
map用于所有元素进行处理,并生成新元素,原数组不变
 
el:求圆的面积
var radii=[10,20,30]
var areas=radii.map((radius)=>{
    var area=Math.PI * (radius * radius);
    return area.toFixed(0);
});
console.log(areas);
输出结果:["314","1257","2827"]
 
reduce用于元素累加、元素比较大小
 
el:拼接所有数组
[[0,1],[2,3],[4,5]].reduce((acc,cur)=>acc.concat(cur));
输出结果:[0,1,2,3,4,5]
 
filter用于过滤
 
el:排除掉小于10的数
var isBigEnough=(element)=>{
    return element >10;
}
[12,5,8,120,44].filter(isBigEnough);
输出结果:[12,120,44]
 

高阶用法:面试题上的
 
el:数组去重 filter + indexOf
function unique(arr){
    var res=arr.filter(function(item,index,array){
        returun array.indexof(item)===index;
        //判断元素在数组中第一次出现位置是不是当前位置
    })
    return res;
}
 
el:找出数组中的最大值 reduce
[6, 4, 1, 8, 2, 11, 3].reduce((pre,nex)=>{
    return Math.max(pre,nex);
})
 
el:打乱数组的方法 sort
[1,2,3,4].sort(()=>{
    return 0.5 - Math.random();
})
 
 
 
 
 
 

数组方法map(映射),reduce(规约),foreach(遍历),filter(过滤)的更多相关文章

  1. 聊一聊数组的map、reduce、foreach等方法

    聊聊数组遍历方法 JS 数组的遍历方法有好几个: every some filter foreach map reduce 接下来我们来一个个地交流下. every() arr.every(callb ...

  2. codewars--js--Write Number in Expanded Form—filters、map、reduce、forEach

    问题描述: you will be given a number and you will need to return it as a string in Expanded Form. For ex ...

  3. 数组方法-->map()

    map()方法: Array.map((数组元素, 数组元素的下标, 数组本身)=>{}[,thisArray]) 1.调用时在数组内部发生了一次从 0 到 length-1 的循环: 2.返回 ...

  4. python中的zip、map、reduce 、lambda、filter函数的使用

    飞机票 lambda函数 lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去. lambda表达式是 ...

  5. 关于数组的map、reduce、filter

    map:map()方法定义在Array中,传入自己的参数,就得到一个新的Array作为结果 var aqiData = [ ["北京", 90], ["上海", ...

  6. ES5 数组方法map

    概述 map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组. 语法 array.map(callback[, thisArg]) 参数 callback 原数组中的元素经 ...

  7. 用ES5实现ES6的数组方法map

    先举个常见的栗子: var arr = [1,2,3,4,6,7,8,9,12,3,25,63,100] var arr2 = arr.map(item => item += 1) consol ...

  8. 第35讲:List的map、flatMap、foreach、filter操作代码实战

    List类的高阶方法          val fmap = List( 1,2 ,3). map { _ + 1 } //List(2, 3, 4)    val fruit_rev2 = frui ...

  9. 0004python中的map,reduce,lambda,filter

    编程实现:a[0]*b[0] + a[1]*b[1] +...+a[i]*b[j] >>> a=[1,2,3,4,5]>>> b=[6,7,8,9,0] >& ...

随机推荐

  1. How to install Maven on Windows

    To install Apache Maven on Windows, you just need to download the Maven’s zip file, and Unzip it to ...

  2. Python3基础 list count 查询指定元素在列表中出现了多少次

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  3. github帐户和仓库的创建

    sign up is registration and sign in is logging in for "in" is to enter an existing account ...

  4. P4137 Rmq Problem / mex

    目录 链接 思路 线段树 莫队 链接 https://www.luogu.org/problemnew/show/P4137 思路 做了好几次,每次都得想一会,再记录一下 可持久化权值线段树 区间出现 ...

  5. MySQL 命令操作数据表

    MySQL 命令操作数据表 1.查看表信息 desc hs_user_credit_info; 2.新增表字段 alter table hs_credit_order add search_relat ...

  6. 前缀判断|2013年蓝桥杯B组题解析第五题-fishers

    前缀判断 如下的代码判断 needle_start指向的串是否为haystack_start指向的串的前缀,如不是,则返回NULL. 比如:"abcd1234" 就包含了 &quo ...

  7. (转)Spring Cloud(一)

    (二期)22.微服务框架spring cloud(一) [课程22]spirng c...简介.xmind54KB [课程22]spirng cl...架构.xmind0.5MB [课程22]负载均. ...

  8. 【安装】Redis4.0.10在Linux环境搭建

    1.下载Redis后上传到指定目录 2.解压 tar -zxvf redis-4.0.10.tar.gz 3.进入加压后的目录并编译 cd redis-4.0.10 make 4.进入src目录安装 ...

  9. [转] Java 基础

    1. 面向对象和面向过程的区别 面向过程 面向对象 2. Java 语言有哪些特点 3. 关于 JVM JDK 和 JRE 最详细通俗的解答 JVM JDK 和 JRE 4. Oracle JDK 和 ...

  10. js二叉树

    插入数值//初始化node对象function Node ( data) { this.data = data; this.left = null; this.right = null;}// 定义插 ...