箭头函数能显著简化数组的 filter 和 map 操作,让代码更简洁、可读性更强,尤其适合单表达式逻辑;过滤偶数、非空字符串、对象属性,映射提取属性、计算新值、生成新对象,以及组合 filter+map 链式调用均更直观轻量。

箭头函数能显著简化数组的 filter 和 map 操作,让代码更简洁、可读性更强,尤其适合单表达式逻辑。
用箭头函数写 filter 更轻量
filter 接收一个判断函数,返回满足条件的元素。箭头函数省去 function 关键字和花括号(单参数时还可省括号),常见写法如下:
- 过滤偶数:
[1, 2, 3, 4].filter(x => x % 2 === 0)→[2, 4] - 过滤非空字符串:
['a', '', 'b', null].filter(s => s)→['a', 'b'](注意:null、undefined、''等 falsy 值会被自动剔除) - 带对象属性判断:
users.filter(u => u.age >= 18 && u.active)
用箭头函数写 map 更直观
map 对每个元素执行变换并返回新数组。箭头函数天然适合这种“输入→输出”的映射关系:
- 提取属性:
users.map(u => u.name) - 计算新值:
[1, 2, 3].map(x => x * x)→[1, 4, 9] - 生成新对象(记得加括号避免语法错误):
items.map(i => ({ id: i.id, label: i.title.toUpperCase() }))
组合 filter + map 一气呵成
两者常连用,箭头函数让链式调用干净利落:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 获取所有活跃用户的姓名列表:
users.filter(u => u.active).map(u => u.name) - 筛选并格式化价格:
products.filter(p => p.inStock).map(p => `$${p.price.toFixed(2)}`)
注意:避免过度嵌套;若逻辑变复杂(如需多步计算或条件分支),建议拆成具名函数或使用普通函数体(加花括号和 return)。
要注意的细节
箭头函数没有自己的 this、arguments,也不能用作构造函数——这对 filter/map 通常无影响,因为它们的回调默认在数组上下文中执行。但若你在对象方法里写箭头函数回调并依赖 this,需确认 this 指向是否符合预期。
另外,单参数时括号可省略,但零参数或多个参数必须加括号:() => 42 或 (a, b) => a + b。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










