for ... of循环与此常规循环相同吗?

时间:2020-09-04 21:19:32

标签: javascript

a = [1, 2];

for (item of a) {}类似于此for循环:

for (let index = 0; index < a.length; index++) {
    let item = a[index]
}

我注意到您也可以在continue中使用breakfor...of

我认为我更喜欢使用常规的for循环-感觉我有更多的控制权。

2 个答案:

答案 0 :(得分:0)

是的,假设a是标准数组,它在功能上是相同的。

我认为我更喜欢使用常规的for循环-感觉我有更多的控制权。

在编写第100个for循环后,您将不再有这种感觉,意识到只需要在其中1%的情况下进行额外的控制,而在99%的情况下就不需要冗长的代码,而在10%的情况下则需要怪异的错误他们。

Array#forEach是另一个不错的选择。通常,您真正想要的是Array#map(如果您想以某种方式转换数组的每个项目)。

答案 1 :(得分:0)

for用于具有[]运算符的对象。 for..of用于可迭代对象。一些对象可以迭代,并具有[]运算符,例如Arrays。

let myIterable = {};
myIterable[Symbol.iterator] = function* () {
    yield 1;
    yield 2;
    yield 3;
};
for(x of myIterable) {
  console.log(x)
}

相关问题