Javascript 常见的高阶函数详情
作者:前端人 发布时间:2024-04-18 09:30:22
标签:Javascript,高阶函数
目录
一、常见的高阶函数
1.1、filter
1.2、map
1.3、reduce
高阶函数,英文叫 Higher Order function
。一个函数可以接收另外一个函数作为参数,这种函数就叫做高阶函数。
示例:
function add(x, y, f) {
return f(x) + f(y);
}
//用代码验证一下:
add(-5, 6, Math.abs); // 11
一、常见的高阶函数
ES6
中数组新增了几种方法,其中 map
、reduce
、filter
几个都是高阶函数,除此,普通的sort
也是高阶函数。分别介绍下新增的三个方法。
1.1、filter
filter
是过滤数组,返回满足条件的数据,组成一个新的数组返回,不满足条件的被丢弃。
实例1:取出数组中小于 100 的数据,放到一个新数组中
let grad = [ 102, 188, 55, 66, 200, 800 ]
let arr2 = grad.filter( function(item){
return item <= 100
})
console.log("arr2",arr2)// 55, 66
上述实例中,filter
传入的参数是一个函数,传入的函数依次作用于每个元素,然后根据返回值是 true
或 false
决定保留还是丢弃元素。因为只有 55 66 两个满足条件,所以新的数组中只有这两个元素。
1.2、map
map 是映射的意思。
原数组被映射成一个新的数组,返回值是一个新数组,不改变原来的数组。新的数组与原数组的长度是不会改变的。
实例2:给数据每个元素放大 2 倍。
let arr2 = [ 55, 66 ]
let arr3 = arr2.map( item => {
return item*2
})
//返回结果 [ 110, 132 ]
上述实例,map
接收的参数是一个函数,该函数依次作用于每个元素,对元素放大了2倍,也可以对其进行任意的复杂操作。
1.3、reduce
reduce
是对数组进行汇总的,往往进去一个数组,出来是一个数据。经常用于求和和计算平均值。
实例3:对上个实例返回的结果进行求和。
let sum = arr3.reduce((tmp,item)=>{
return tmp+item
})
//返回结果 242
重点来了,如果我们想把上边三个实例合并到一起执行,最终我们可以写得有多简单呢?
负责写法:
// 复杂写法
let grad = [102,188,55,66,200,800]
let arr2 = grad.filter(function(item){
return item <= 100
})
let arr3 = arr2.map(item=>{
return item*2
})
let sum = arr3.reduce((tmp,item)=>{
return tmp+item
})
简单写法:
//简单写法
let sum2 = grad
.filter( item => {return item <= 100})
.map(item=>{return item*2})
.reduce((tmp,item)=>{return tmp+item})
来源:https://www.cnblogs.com/web-learn/p/15346324.html


猜你喜欢
- 最近在下载tensorflow的时候出现了如下图所示的情况:Could not find a version that satisfies
- 在ASP.NET中,如何连接 SQLServer数据库?连接数据库:<%@ Import Namespace=&q
- 问题一:将u'\u810f\u4e71'转换为'\u810f\u4e71'方法:s_unicode = u&
- 本文分别介绍了安装python2和python3的详细方法,分享给大家。一、Windows系统很多童鞋问之前的教程怎么没有介绍安装pytho
- 本文实例讲述了PHP实现的浏览器检查类。分享给大家供大家参考,具体如下:<?php//原作者:epsilon7//SonyMusic(
- (1)数据记录筛选: sql="select*from数据表where字段名=字段值orderby字段名[desc]"
- MySQL服务器端的参数有很多,但是对于大多数初学者来说,众多的参数往往使得我们不知所措,但是哪些参数是需要我们调整的,哪些对服务器的性能影
- pom.xml文件中引入如下内容<dependency><groupId>com.github.ulisesbocc
- 本文实例讲述了python中global用法。分享给大家供大家参考。具体分析如下:1、global---将变量定义为全局变量。可以通过定义为
- 有这么一段代码,可以先看一下有没有什么问题,作用是输入一段json字符串,反序列化成map,然后将另一个inputMap的内容,merge进
- 第一步 : 从清华大学开源软件镜像站下载Anaconda:https://mirrors.tuna.tsinghua.edu.cn/anac
- mytop类似于linux top工具,可以实时监控mysql服务器的性能信息。 安装方法 1、安装依赖 # cpan # cpan >
- 使用MySQL进行数据库备份,有很正规的数据库备份方法,同其他的数据库服务器有相同的概念,但有没有想过,MySQL会有更简捷的使用文件目录的
- 1.说明:复制表(只复制结构,源表名:a 新表名:b)SQL: select * into b&nb
- 前言对MySQL表的基本查询还远远达不到实际开发过程中的需求,因此还需要掌握对数据库表的复合查询。本文介绍了多表查询、子查询、自连接、内外连
- 导语嘿!大家好,我是木木子!今天给大家带来一个好玩儿的Python小程序,希望大家喜欢,记得点点关注啦~有没有什么内容形式,比小视频更小,比
- 一、效果展示1、俄罗斯方块这个应该是玩起来最最简单的了…2、扫雷运气好,点了四下都没踩雷哈哈…3、五子棋我是菜鸡,玩不赢电脑人…
- 前言目前学习python几个月了,由于自己比较喜欢跑马拉松,已经跑过了很多场比赛,前些天就写了个简单的爬虫爬取了网上三千多场马拉松比赛的报名
- 最近在用python处理Excel表格是遇到了一些问题1, xlwt最多只能写入65536行数据, 所以在处理大批量数据的时候没法使用2,
- 1、 变量及其作用域:变量分为“全局变量”和“局部变量”,“全局变量”申明在函数外部,可供所有函数使用,而“局部变量”申明在函数体内部,只能