JavaScript中的常用高阶函数
来源:互联网 发布:曙光虚拟化软件 编辑:程序博客网 时间:2024/05/16 12:33
JavaScript中的常用高阶函数
这是在前端早读课中看到的JavaScript高阶函数,觉得有用便顺手记下来。
1.filter
const people = [ {name: 'John Doe',age: 16}, {name: 'Thomas Calls',age: 19}, {name: 'Liam Smith',age: 20}, {name: 'John Doe',age: 16}]
筛选出大于等于18岁的人:
//普通做法实现过滤掉不足18岁的人 箭头函数不明白的去搜一下const peopleAbove18 = (collection) => { const results = []; for (let i = 0;i < collection.length:i++){ const person = collection[i]; if(person.age >= 18){ result.push(person) } } return results;};//利用filter达到同样效果const peopleAbove18 = (collection) => { return collection.filter((people) => person.age >= 18);};
filter()接受一个函数参数,这个函数接受一个数组对象,再返回满足某条件的数组对象。filte()实现的是对数组对象中的每个元素进行判别,再把经过筛选后的数组对象返回
2.map
const coffeeLovers = {'John Doe','Liam Smith','Jessy Pinkman'};//普通做法实现把是否爱喝咖啡的属性加入结果const addCoffeeLoverValue = (collection) => { const result = []; for(let i = 0;i < collection.length;i++){ const person = collection[i]; if(coffeeLovers.includes(person.name)){ person.coffeeLover = true; } else{ person.coffeeLover = false; } result.push(person); }}//利用map达到同样效果const incrementAge = (collection) =>{ return collection.map((person)=>{ person.coffeeLover = coffeeLovers.includes(person.name); })}
map()接受一个函数参数,这个函数接受一个数组对象,map()实现的其实是遍历这个数组对象,对数组中每个元素进行操作。
3.reduce
//普通方法实现计算person中所有人的年龄和 forEach参考我写的‘JavaScript中语句’一文const sumAge = (collection) => { let num = 0; collection.forEach((person)=>{ num += person.age; }); return num;}//使用reduce实现同样的效果const sumAge = (collection) => collection.reduce((sum,person) => { return sum + person.age;})
reduce()方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
语法:
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
4.总结
其实自己写完才知道这个标题实在是起的有迷惑性,这不过是数组对象的几个常用方法,硬是被说成了JavaScript常用高阶函数。虽然确实切合高阶函数以函数作为参数的定义,但还是感觉不应叫这个,以后有空会再研究JavaScript中的高阶函数。
阅读全文
0 0
- JavaScript中的常用高阶函数
- javascript 中的高阶函数
- 函数-Javascript中的高阶函数介绍
- 记录一下javascript中的高阶函数
- Javascript中的高阶函数介绍
- javascript 中的常用函数
- javascript中数组的常用高阶函数
- JavaScript-高阶函数
- 高阶函数与JavaScript
- JavaScript 高阶函数filter
- 【javascript】JavaScript高阶函数介绍
- JavaScript中的常用算法和函数
- 谈一谈javaScript中的一些常用函数
- JavaScript函数之高阶函数
- Scala中的高阶函数
- python中的高阶函数
- Scala中的高阶函数
- Java 中的高阶函数
- 剑指Offer--7.斐波那契数列
- Linux跨文本命令执行
- 【C#】每日知识点-正则表达式
- Java OOP
- Thinking in java读书笔记-线程(一)
- JavaScript中的常用高阶函数
- javascript 字典(dictionary)算法与说明
- Win8.1使用VMware虚拟网卡无法安装解决方法
- 微服务的4个设计原则和19个解决方案
- String,StringBuffer与StringBuilder的区别
- redis 后台缓存技术,整合进入spring
- 1001. 害死人不偿命的(3n+1)猜想 (15)
- POJ 1990 MooFest
- AsyncTask的执行步骤