js基础--高阶函数(map,reduce,filter,sort)
高阶函数
一个函数可以接收另一个函数作为参数,这种函数就称之为高阶函数,编写高阶函数,就是让函数的参数能够接收别的函数。
function add (x,y,f){
return f(x)+f(y)
}
map
将数组元素快速转成字符串
let arr = [1, 2, 3, 4]
let cc=arr.map(String)
注意:String() 可直接把一个字变成字符串
console.log(String([1,1,2])) // 1,1,2
也可以这样
arr.join(',')
reduce,把一个函数作用在这个arr的每个参数上,接收两个参数,把第一个结果,和下一个做累积计算
[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
及拿到前两个的结果,把结果和第三个计算得出新的结果,把第三个跟第四个计算。。。
计算数组相加
let arr=[1,2,3,4]
let cc = 0
arr.map(item => {
cc += item
})
或
let cc=arr.reduce(function(x,y){
return x+y
})
let num='13579'
let cc=num.split('').map(Number).reduce(function(x,y){
return x*10+y
})//12579
首字母大写,其他小写
let arr=['adam', 'LISA', 'barT']
let cc=arr.map(item=>{
return item.charAt(0).toUpperCase()+item.slice(1).toLowerCase()
})
console.log(cc)
filter
用于把arr的某些元素过滤掉,返回剩下的元素
接收三个参数,每一项,下标,数组本身
arr.filter(function(item,index,arr){})
可用于数组去重
return arr.indexOf(item)===index
原理:indexOf总是会返回第一个的下标,如果有重复的, 就不返回,就可以去掉了
let arr = ['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange', 'strawberry']
let cc=arr.filter((item,index,arr)=>{
return arr.indexOf(item)===index
})
sort 排序(本质是字符串排序,ascii)
升序,(x<y return 1 为降序)
let arr=[13,1,34,'cc',3,12,'apple']
arr.sort((x,y)=>{
if(x<y) return -1; //如果x<y 不需要换
if(x>y) return 1; //如果x>y 要换
return 0; //相等,不动
})
对于忽略大小写进行比较,还可以拿到参数时先进行转换,把参数转成一样的格式
x=toLowerCase()
js基础--高阶函数(map,reduce,filter,sort)的更多相关文章
- JavaScript高阶函数 map reduce filter sort
本文是笔者在看廖雪峰老师JavaScript教程时的个人总结 高阶函数 一个函数就接收另一个函数作为参数,这种函数就称之为高阶函数 1.高阶函数之map: ...
- python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))
1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层的函数,可以把复杂的任务分解成简单的任务,这种一步一步的分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...
- Python 函数式编程 & Python中的高阶函数map reduce filter 和sorted
1. 函数式编程 1)概念 函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念.wiki 我们知道,对象是面向对象的第一型,那么函数式编程也是一样,函数是函数 ...
- Python学习 Day 5 高阶函数 map/reduce filter sorter 返回函数 匿名函数 装饰器 偏函数
高阶函数Higher-orderfunction 变量可以指向函数 >>> abs #abs(-10)是函数调用,而abs是函数本身 <built-in function ab ...
- 函数式编程 高阶函数 map&reduce filter sorted
函数式编程 纯函数:没有变量的函数 对于纯函数而言:只要输入确定,那么输出就是确定的.纯函数是没有副作用的. 函数式编程:允许把函数本身作为参数传入另一个函数,还允许返回一个函数 高阶函数:一个函数的 ...
- Python高阶函数_map/reduce/filter函数
本篇将开始介绍python高阶函数map/reduce/filter的用法,更多内容请参考:Python学习指南 map/reduce Python内建了map()和reduce()函数. 如果你读过 ...
- 辅助函数和高阶函数 map、filter、reduce
辅助函数和高阶函数 map.filter.reduce: 一.辅助函数:(1-1)响应式函数 (数组更新检测): push() pop() shift() unshift() ...
- JavaScript高阶函数map/reduce、filter和sort
map() 举例说明,比如我们有一个函数f(x)=x²,要把这个函数作用在一个数组[1,2,3,4,5,6,7,8,9]上. 由于map()方法定义在JavaScript的Array中,我们调用Arr ...
- python之高阶函数map/reduce
L = [] for n in [1, 2, 3, 4, 5, 6, 7, 8, 9]: L.append(f(n)) print(L) Python内建了map()和reduce()函数. 我们先看 ...
随机推荐
- 【原创】大叔经验分享(46)用户提交任务到yarn报错
用户提交任务到yarn时有可能遇到下面的错误: 1) Requested user anything is not whitelisted and has id 980,which is below ...
- java入门需了解的历史
1991年,Sun公司的Green项目,Oak 1995年,推出Java测试版 1996年,JDK1.0 1997年,JDK1.1 1998年,JDK1.2,大大改进了早期版本的缺陷,是一个革命性的版 ...
- 上传jar包到maven中央仓库过程中遇到的一些问题总结!
网上有很多相关教程, 我按步骤一步步走下来, 都还算顺利, 简单列举一下步骤以及其中需要注意的几个点(不详细, 不适合当教程) 第一步: 到https://issues.sonatype.org/se ...
- 饮冰三年-人工智能-Python-23 Python PyCharm 使用中常见的问题
一:软件工具使用中遇到的问题 1:AttributeError: module 'pip' has no attribute 'main'问题 处理方法: a:找到JetBrains\PyCharm ...
- OpenCV imread读取jpg图像的一个大坑
长话短说 版本区间[OpenCV3.0.0, OpenCV3.4.1]内的OpenCV,(至少在windows下,使用官方提供的预编译版本),imread读取jpg图片后的像素值,和版本区间[Open ...
- HTML5全屏浏览器兼容方案
最近一个项目有页面全屏的的需求,搜索了下有HTML5的全屏API可用,不过各浏览器的支持不一样. 标准 webkit Firefox IE Element.requestFullscreen() ...
- Matlab将多项式的系数设为0
符号运算时有些多项式的系数值接近于0,像这样 fun = 3.5753839759325595498222646101085e-49*x + 1.836709923159824231201150839 ...
- 一、ESP8266入门(基于LUA开发)
序 一入坑便停不下来... 还挺有意思的哈,233,,,, 资料杂,自己一个一个去找确实浪费了不少时间,而且大多还都是英文的,需要硬着头皮看. 这次实践入门,更是对英语的重要确信无疑.Github必须 ...
- 网络编程-Mysql-1、数据库的启动关闭,创建数据库,表等基本操作
启动服务端:sudo service mysql start 关闭服务端:suodo service mysql stop 重启服务端:suodo service mysql restart 连接数据 ...
- TCP/IP协议、HTTP协议、SOCKET通讯详解
1.TCP连接TCP(Transmission Control Protocol) 传输控制协议.TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握确认建立一个连接.位码即tcp标志位 ...