我们可以使用for-of循环访问数组元素:

For (const j of [1,2,3,4,5]) { console.log (j); }

我如何修改这段代码来访问当前索引?我想使用for-of语法来实现这一点,既不是forEach也不是for-in。


当前回答

只需在循环之前创建一个变量并分配一个整数值。

设index = 0;

然后使用加法赋值运算符进入循环作用域

指数+= 1;

就是这样,检查下面的代码片段示例。

设index = 0; For (const j of [1,2,3,4,5]) { console.log(指数,指数); 指数+= 1; }

其他回答

使用Array.prototype.keys:

对于[1,2,3,4,5].keys()的const索引{ console.log(指数); }

如果你想同时访问键和值,你可以使用Array.prototype.entries()进行解构:

For (const [index, value] of [1,2,3,4,5].entries()) { console.log(指数、价值); }

数组#entries返回索引和值,如果你需要两者:

for (let [index, value] of array.entries()) {

}

只需在循环之前创建一个变量并分配一个整数值。

设index = 0;

然后使用加法赋值运算符进入循环作用域

指数+= 1;

就是这样,检查下面的代码片段示例。

设index = 0; For (const j of [1,2,3,4,5]) { console.log(指数,指数); 指数+= 1; }

如果你需要索引,你也可以自己处理索引,如果你需要键,它将不起作用。

let i = 0;
for (const item of iterableItems) {
  // do something with index
  console.log(i);

  i++;
}

在html/js上下文中,在现代浏览器中,对于数组以外的其他可迭代对象,我们也可以使用[iterable].entries():

for(let [index, element] of document.querySelectorAll('div').entries()) {

    element.innerHTML = '#' + index

}