for...of 本身不提供索引,但可通过 arr.entries() 配合解构获取索引和值;entries() 返回 [index, value] 数组,原生支持且行为明确。

for...of 本身不直接提供索引,它只遍历可迭代对象的值。但有几种简洁可靠的方式可以同时拿到索引和值。
用 entries() 配合解构
数组的 entries() 方法返回一个可迭代对象,每次迭代产出 [index, value] 形式的数组,配合解构赋值最直观:
const arr = ['a', 'b', 'c'];
for (const [index, value] of arr.entries()) {
console.log(index, value); // 0 'a' → 1 'b' → 2 'c'
}
用 for...let 索引变量(传统但有效)
如果不需要严格使用 for...of 语义,直接用 for...let 或 for 循环更直接:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
const arr = ['a', 'b', 'c']; for (let i = 0; i
用 Array.prototype.forEach(语义清晰,但不是 for...of)
虽然不属于 for...of,但 forEach 天然支持索引和值参数,适合简单遍历场景:
const arr = ['a', 'b', 'c'];
arr.forEach((value, index) => {
console.log(index, value);
});
注意:不要用 keys() 或 values() 单独获取索引或值
arr.keys() 只返回索引迭代器,arr.values() 只返回值迭代器 —— 它们无法一步拿到两者。强行组合会增加复杂度,不推荐。
- entries() 是专为“索引+值”设计的标准方案
- 浏览器和 Node.js 环境均原生支持,无需 polyfill
- 对稀疏数组、含空位的情况行为明确(空位会被当作 undefined 处理)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










