首页 > web前端 > js教程 > 正文

javascript高阶函数是什么_map和filter如何使用

夜晨
发布: 2025-12-21 15:43:23
原创
215人浏览过
JavaScript高阶函数是以函数为参数或返回函数的函数;map对每个元素做一对一转换生成等长新数组,filter按条件筛选生成子集数组,二者可链式组合实现清晰的数据处理逻辑。

javascript高阶函数是什么_map和filter如何使用

JavaScript高阶函数是指**以函数为参数,或返回函数的函数**。数组上的 mapfilter 就是最典型、最常用的两个——它们不修改原数组,而是基于规则生成新数组,让数据处理更清晰、安全、可读。

map:对每个元素做统一转换

map 遍历原数组每一项,把回调函数的返回值收集起来,组成一个等长的新数组。

  • 原数组不变,新数组长度一定和原数组相同
  • 适合做格式化、计算、提取属性等“一对一映射”操作
  • 回调函数接收三个参数:当前元素、索引、原数组(后两者常省略)

示例:

MagicArena
MagicArena

字节跳动推出的视觉大模型对战平台

MagicArena 163
查看详情 MagicArena

把数字数组全部翻倍

const nums = [2, 4, 6];<br>const doubled = nums.map(n => n * 2); // [4, 8, 12]
登录后复制

从用户对象中只取姓名

const users = [{name: 'Tom', age: 28}, {name: 'Lily', age: 22}];<br>const names = users.map(u => u.name); // ['Tom', 'Lily']
登录后复制

filter:按条件筛选出子集

filter 遍历原数组,对每一项执行回调函数;只有返回 true 的元素才会进入新数组。

  • 新数组长度 ≤ 原数组长度
  • 回调必须明确返回布尔值(true 留下,false 跳过)
  • 常用于数据清洗、权限过滤、状态筛选等场景

示例:

挑出所有偶数

const nums = [1, 2, 3, 4, 5, 6];<br>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 可以链式组合使用

filtermap 是常见模式,逻辑清晰、无需中间变量。

示例:获取所有成年用户的姓名大写

const result = users<br>  .filter(u => u.age > 25)<br>  .map(u => u.name.toUpperCase()); // ['TOM']
登录后复制

这种写法表达意图直接,也便于后续扩展(比如再加 sortreduce)。

以上就是javascript高阶函数是什么_map和filter如何使用的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号