登录
首页 >  文章 >  前端

JavaScript高阶函数有哪些?map与filter详解

时间:2025-12-29 15:48:40 194浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习文章的朋友们,也希望在阅读本文《JavaScript高阶函数有哪些\_map和filter用法解析》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新文章相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

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

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

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

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

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

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

示例:

把数字数组全部翻倍

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详解》的详细内容,更多关于的资料请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>