前言
在游戏引擎中,经常需要遍历集合并修改元素。Array.forEach()是 ArkTS 中最常用的遍历方法,配合Array.from()将 Map 转换为数组后操作。
本文以GameEngine.updateCats()中的sortedCat.forEach()为锚点,讲解遍历中修改集合的注意事项。
提示:本系列不讲 ArkTS 基础语法与环境搭建,假设你已跟完第 1–123 篇。本篇是阶段四第 124 篇。
一、遍历修改
1.1 遍历下落的猫咪
sortedCats.forEach((cat) => { if (!cat.falling) return; const nextY = cat.y + 1; if (nextY >= GameConfig.BOARD_HEIGHT) { cat.falling = false; // 修改猫猫对象的属性 this.placeCatOnBoard(cat); } else if (this.board[nextY][cat.x] !== null) { cat.falling = false; // 修改猫猫对象的属性 this.placeCatOnBoard(cat); } else { cat.y = nextY; // 修改猫猫对象的 y 坐标 } });1.2 注意事项
| 场景 | 说明 |
|---|---|
| 修改元素属性 | ✅ 在 forEach 中直接修改cat.falling |
| 删除当前元素 | ⚠️ 用Map.delete在外部处理 |
| 新增元素 | ✅ 在遍历前/后处理,不要在遍历中 insert |
二、总结
forEach 适用于遍历集合并修改元素属性的场景,删除/新增建议在遍历外处理。
核心要点:
forEach遍历数组中的每只猫咪- 直接修改
cat.falling/cat.y属性 - 删除操作
cats.delete(cat.id)在合并逻辑中处理
下一篇预告:第 125 篇将深入四邻合并检测——方向数组遍历。
如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!
相关资源:
- Array.forEach MDN 文档
- 开源鸿蒙跨平台社区
- 第 123 篇:sort排序
- 第 125 篇:合并检测