高阶函数

一个函数可以接收另一个函数作为参数,这种函数就称之为高阶函数,编写高阶函数,就是让函数的参数能够接收别的函数。

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)的更多相关文章

  1. JavaScript高阶函数 map reduce filter sort

    本文是笔者在看廖雪峰老师JavaScript教程时的个人总结 高阶函数            一个函数就接收另一个函数作为参数,这种函数就称之为高阶函数          1.高阶函数之map:   ...

  2. python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))

    1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层的函数,可以把复杂的任务分解成简单的任务,这种一步一步的分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...

  3. Python 函数式编程 & Python中的高阶函数map reduce filter 和sorted

    1. 函数式编程 1)概念 函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念.wiki 我们知道,对象是面向对象的第一型,那么函数式编程也是一样,函数是函数 ...

  4. Python学习 Day 5 高阶函数 map/reduce filter sorter 返回函数 匿名函数 装饰器 偏函数

    高阶函数Higher-orderfunction 变量可以指向函数 >>> abs #abs(-10)是函数调用,而abs是函数本身 <built-in function ab ...

  5. 函数式编程 高阶函数 map&reduce filter sorted

    函数式编程 纯函数:没有变量的函数 对于纯函数而言:只要输入确定,那么输出就是确定的.纯函数是没有副作用的. 函数式编程:允许把函数本身作为参数传入另一个函数,还允许返回一个函数 高阶函数:一个函数的 ...

  6. Python高阶函数_map/reduce/filter函数

    本篇将开始介绍python高阶函数map/reduce/filter的用法,更多内容请参考:Python学习指南 map/reduce Python内建了map()和reduce()函数. 如果你读过 ...

  7. 辅助函数和高阶函数 map、filter、reduce

    辅助函数和高阶函数 map.filter.reduce: 一.辅助函数:(1-1)响应式函数 (数组更新检测):    push()    pop()    shift()    unshift()  ...

  8. JavaScript高阶函数map/reduce、filter和sort

    map() 举例说明,比如我们有一个函数f(x)=x²,要把这个函数作用在一个数组[1,2,3,4,5,6,7,8,9]上. 由于map()方法定义在JavaScript的Array中,我们调用Arr ...

  9. 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()函数. 我们先看 ...

随机推荐

  1. centos 6 部署Nodejs

    线上环境需要一套nodjs,没话说,那就部署唠. 一.下载编译包.解压.软链 nodjs历史版本连接:https://nodejs.org/zh-cn/download/releases/ cd /u ...

  2. HTTP协议12-HTTPS

    1)HTTP的缺点 通信使用明文(不加密),内容可能会被窃听 不验证通信方的身份,因此有可能遭遇伪装 无法证明报文的完整性,所有有可能已被篡改 1.1 通信使用明文可能会被窃听 由于HTTP本身不具备 ...

  3. java控台输入

    import java.util.Scanner;//访问util包的Scanner(控台输入) public class HelloWorld {public static void main(St ...

  4. Discovery Scanning

    1.NetDiscover you performe layer 2 the comand  : netdiscover -r 192.168.2.0/24   or use   netdiscove ...

  5. java中对象的创建过程

    public class Test1 { public static void main(String[] args) { new B(); System.out.println("---- ...

  6. 二维前缀和好题hdu6514

    #include<bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<=b;i++) using namespace std; ]; )* ...

  7. sass创建web项目环境步骤

    1)npm创建web前端项目环境步骤 1.新建文件夹,在该文件下进入cmd控制台2.输入命令 npm init 回车3.name:名字只支持小写,不支持大写,将大写的名字改为小写即可4.version ...

  8. SQL SERVER 打开脚本报“未能完成操作,存储空间不足”

    使用用SQLCMD命令行. 1.快捷键:win+R 2.输入cmd​,确定 3.输入命令:sqlcmd -S <数据库服务器名称> -i C:\<脚本文件路径>.sql 例:s ...

  9. Spring设置定时任务时,关于执行时间的规则设置

    been需要在xml文件中进行配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE bean ...

  10. 使用java的Calendar工具类获取到本月的第一天起始时间和最后一天结束时间。

    1.使用java的Calendar工具类获取到本月的第一天起始时间和最后一天结束时间. package com.fline.aic.utils; import java.text.DateFormat ...