JavaScript高阶函数是以函数为参数或返回函数的函数;map对每个元素做一对一转换生成等长新数组,filter按条件筛选生成子集数组,二者可链式组合实现清晰的数据处理逻辑。

JavaScript高阶函数是指**以函数为参数,或返回函数的函数**。数组上的 map 和 filter 就是最典型、最常用的两个——它们不修改原数组,而是基于规则生成新数组,让数据处理更清晰、安全、可读。
map:对每个元素做统一转换
map 遍历原数组每一项,把回调函数的返回值收集起来,组成一个等长的新数组。
原数组不变,新数组长度一定和原数组相同适合做格式化、计算、提取属性等“一对一映射”操作回调函数接收三个参数:当前元素、索引、原数组(后两者常省略)
示例:
把数字数组全部翻倍
立即学习“Java免费学习笔记(深入)”;
const nums = [2, 4, 6];
const doubled = nums.map(n => n * 2); // [4, 8, 12]
从用户对象中只取姓名
const users = [{name: 'Tom', age: 28}, {name: 'Lily', age: 22}];
const names = users.map(u => u.name); // ['Tom', 'Lily']
filter:按条件筛选出子集
filter 遍历原数组,对每一项执行回调函数;只有返回 true 的元素才会进入新数组。
新数组长度 ≤ 原数组长度回调必须明确返回布尔值(true 留下,false 跳过)常用于数据清洗、权限过滤、状态筛选等场景
示例:
挑出所有偶数
const nums = [1, 2, 3, 4, 5, 6];
const evens = nums.filter(n => n % 2 === 0); // [2, 4, 6]
只保留年龄大于 25 的用户
const adults = users.filter(u => u.age > 25); // [{name: 'Tom', age: 28}]
map 和 filter 可以链式组合使用
先 filter 再 map 是常见模式,逻辑清晰、无需中间变量。
示例:获取所有成年用户的姓名大写
const result = users
.filter(u => u.age > 25)
.map(u => u.name.toUpperCase()); // ['TOM']
这种写法表达意图直接,也便于后续扩展(比如再加 sort 或 reduce)。
以上就是javascript高阶函数是什么_map和filter如何使用的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1544734.html
微信扫一扫
支付宝扫一扫