使用ES6在for-of循环中进行多次定义

时间:2015-09-14 11:51:14

标签: javascript ecmascript-6

可以在for-of循环中定义多个变量,如下面的代码所示?

let arr = ['red', 'green', 'blue'];
for (let x = 0, y of arr){
  console.log(x++, y);
}

修改

let arr = ['red', 'green', 'blue'];
let x = 0;
for (let y of arr){
  console.log(x++, y)
}

所以我想将此代码转换为第一个(或类似代码),从而减少代码行数。

2 个答案:

答案 0 :(得分:4)

不,您无法在forfor … of循环中正常声明和初始化变量(就像在for … in循环中一样)。

你可以做的是解构,对于你的用例,.entries() iterator包含一个索引:

for (let [x, y] of ['red', 'green', 'blue'].entries())
    console.log(x, y);

答案 1 :(得分:1)

不,这是不可能的,您只能在for...loop中定义一个变量。 babeles6fiddle等编译器会为此类定义返回错误。

相关问题