for...of循环获取索引推荐用entries()方法,如arr.entries()返回[index, value];也可用array.from()构造带索引对象或let计数器;禁用for...in遍历数组。

for...of 循环本身不直接提供索引,但有几种简单可靠的方式可以同时拿到元素和它的下标。
用 entries() 方法(推荐)
数组、字符串、Map、Set 等可迭代对象都支持 entries(),它返回一个包含 [index, value] 的迭代器:
const arr = ['a', 'b', 'c'];
for (const [index, item] of arr.entries()) {
console.log(index, item); // 0 'a' → 1 'b' → 2 'c'
}
用 Array.from() + for...of
把数组转为带索引的键值对数组,适合需要额外处理索引或想统一格式的场景:
const arr = ['x', 'y', 'z'];
for (const { index, value } of Array.from(arr, (v, i) => ({ index: i, value: v }))) {
console.log(index, value);
}
配合 let 声明的计数器
最直白的方式,适用于简单遍历且不需要强类型安全的场合:
const arr = [10, 20, 30];
let i = 0;
for (const item of arr) {
console.log(i, item);
i++;
}
注意:别用 for...in
for...in 遍历的是对象的可枚举属性名(包括继承的),对数组会返回字符串索引,还可能乱序,不推荐用于获取数组下标。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











