作者:ar_wen2402851455 | 2023-09-09 19:04
我们可以使用for-of循环访问数组元素:
for (const j of [1, 2, 3, 4, 5]) {
console.log(j);
}
如何修改此代码以访问当前索引?我想使用for-of语法实现这一点,既不是forEach也不是for-in.
1> Michał Perła..:
用途Array.prototype.keys
:
for (const index of [1, 2, 3, 4, 5].keys()) {
console.log(index);
}
2> Felix Kling..:
Array#entries
如果需要,则返回索引和值:
for (let [index, value] of array.entries()) {
}
使用TypeScript:'TS2495:Type IterableIterator不是数组类型或字符串类型'.似乎这样就可以解决了:https://github.com/Microsoft/TypeScript/pull/12346
此外,不支持Internet Explorer.
真好!这似乎也可以与const一起使用。
@Steven:如果你不需要索引,你可以只做`for(var值of document.styleSheets){}`.如果你确实需要索引,你可以首先通过`Array.from`:`for(let [index,value] of Array.from(document.styleSheets)){}`将值转换为数组.
3> chris..:
在这个华丽的新本土功能的世界里,我们有时会忘记基础知识.
for (let i = 0; i < arr.length; i++) {
console.log('index:', i, 'element:', arr[i]);
}
干净,高效,你仍然可以break
循环.奖金!您也可以从最后开始,然后向后退i--
!
你仍然可以`break`一个`for-of`和`for(let [index,value] of array.entries())`更容易阅读.向后退就像添加`.reverse()`一样简单.
顺便说一下条件应该是这样的 - > for(let i = 0; i
我认为这是对这个问题的完全可接受的答案。永远不会是公认的答案,但是它已经帮助数十个人或更多人搜索了该问题。这就是SO的目的。