遍历列表数据需依场景选合适结构:for循环适合需索引或中途退出;forEach适合无返回值的遍历;map/filter/reduce适合函数式转换、筛选与聚合。

遍历处理列表数据,核心是用流程控制语句配合数组方法,把每个元素取出来、判断条件、执行操作。关键不在于“写完”,而在于“选对方式”——不同场景适合不同的遍历结构。
for 循环:最直接,适合需要索引或中途退出的场景
当你需要知道当前是第几个元素、想在满足条件时提前停止(比如找到第一个匹配项就跳出),for 是最清晰的选择。
例如,找出数组中第一个大于 10 的数:
- 用 for (let i = 0; i 逐个访问
- 用 break 跳出循环,避免多余遍历
- 注意别写成 i ,会越界访问 undefined
for...of 循环:简洁读值,适合纯遍历操作
如果只关心元素本身,不需要下标,也不需要改原数组,for...of 写起来更干净,也更接近自然语言逻辑。
比如打印所有用户姓名:
- for (const user of users) —— 每次拿到一个 user 对象
- 比 for (let i = 0; i 少写三处 arr[i]
- 不能直接获取索引,但可以搭配 entries() 或额外计数器
数组高阶方法:语义明确,适合函数式风格
map、filter、find、some 这些方法不是“替代 for”,而是把常见意图封装成可读性更强的操作。
- map:生成新数组(如把所有价格加税)
- filter:筛选子集(如只保留已付款订单)
- find:找第一个匹配项(比 for + break 更声明式)
- 它们默认遍历全部元素,不支持中途 break,但可配合 some 或 every 实现条件终止逻辑
什么时候该用哪个?看三个线索
不用死记规则,动手前问自己:
- 要不要索引?→ 要就用 for 或 forEach((item, index) => {})
- 是否只读不改,且逻辑简单?→ for...of 或 map/filter 更安全
- 是否要提前结束?→ for + break 最直接;some 或 find 也行,但语义必须匹配(比如找存在性或找单个值)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











