数组方法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. tp框架中的一些疑点知识-4

    $_SERVER的几个元素: script_name脚本名称, 是指这个脚本文件本身的文件名, 通常只是 : /index.php path_info: 是从控制器/操作方法开始到最后的内容,包括路径 ...

  2. (转)Introduction to Gradient Descent Algorithm (along with variants) in Machine Learning

    Introduction Optimization is always the ultimate goal whether you are dealing with a real life probl ...

  3. [HDU] 平方和与立方和

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2007 //坑:注意判断输入两个数的前后大小关系 // 用while 循环 #include<io ...

  4. Ubuntu 14.04 安装 boost 1_57_0

    参考: How to build boost 1_57_0 Ubuntu platform Ubuntu 14.04 安装 boost 1_57_0 $ sudo mkdir /opt/downloa ...

  5. magrittr管道操作符使用解释(一)

    使用管道操作符提高代码简洁性 在编写R语言代码时,有时候需要对一个变量进行一系列的运算,例如对于一个同时包含数值列和字符串列的数据框,如果要计算所有数值列之间的相关系数,一般要分两步,第一步首先筛选数 ...

  6. 【Selenium2】【Shell】

    E:\test_object>Python all_test.py >> report/log.txt 2>&1

  7. SQLServer2008 远程过程调用失败

    今天在连接数据库的时候,发现无法获取到服务器名称,打开SQLServer Configuration Manager,发现SQLServer服务中远程过程调用失败 我装的是VS2017,在网上百度了一 ...

  8. git 修改文件夹名字后如何提交

    将文件夹名字从 v1.0.1 修改为 v1.0.2 git add --ignore-removal "v1.0.2/xsxsx"

  9. Mybatis拦截器(一)

    拦截器需要实现 interceptor接口 public interface Interceptor { //3 对目标对象拦截进行处理的内容 Object intercept(Invocation ...

  10. SQL关于WHERE 的计算次序

    WHERE可包含任意数目的AND和OR操作符.允许两者结合以进行复杂 和高级的过滤. 但是OR和AND操作符是有先后次序的. 比如,原意是想找出 3班和5班年龄为21岁的同学,使用 :SELECT * ...