当前位置:  开发笔记 > 编程语言 > 正文

访问for-of循环内的ES6数组元素索引

如何解决《访问for-of循环内的ES6数组元素索引》经验,为你挑选了3个好方法。

我们可以使用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的目的。
推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有