在 JavaScript 的 for...of 循环中获取数组项的索引
JavaScript 的 for...of
循环提供了一种简单的方式来迭代各种可迭代对象,包括数组、字符串、Map
和 Set
对象。与其他选项(例如 Array.prototype.forEach()
)相比,它被认为有一个限制,即你只能获取可迭代对象中每个项的值。但实际上并非如此,你可以轻松地利用 Array.prototype.entries()
来获取每个数组项的索引和值:
const items = ['a', 'b', 'c'];
for (let [index, item] of items.entries()) {
console.log(`${index}: ${item}`);
}
// 输出:0: a, 1: b, 2: c
此外,你可以使用扩展运算符(...
)将字符串转换为数组,然后以相同的方式使用 Array.prototype.entries()
。最后,Map
和 Set
的原型提供了类似的方法(分别是 Map.prototype.entries()
和 Set.prototype.entries()
),可以以相同的方式使用。
如果你对 for...of
及其语法不熟悉,我强烈建议你阅读一下关于 JavaScript 中各种迭代方法的文章。