for-of循环中的节点–harmony不适用于数组

当我用–harmony选项启动节点v0.11.14 REPL并尝试for-for循环时,我得到:

 > for (var i of [3, 4, 5]) console.log(i); TypeError: undefined is not a function 

同样的套。 但是它可以很好地处理发电机:

 > function* Counter() { var n=3; while (n < 7) { yield n++; } } > var c = new Counter(); > for (var i of c) console.log(i); 3 4 5 6 

尽pipeecmascript wiki页面的第一个例子是:

 for (word of ["one", "two", "three"]) { alert(word); } 

MDN页面和Traceur文档包含相同的示例。 我没有谷歌“for-of在nodejs”。 它应该实际工作在Node还是我错过了什么?

for .. of和可迭代的对象分别在v8中实现。 它看起来像v8与节点0.11.14捆绑在一起,只能用于生成器。

您可以检查obj[Symbol.iterator]属性以查看对象是否可迭代,它应该是一个函数。 在我的节点与V8 3.29.93构build一切按预期工作。 所以,你可能不得不等待下一个0.11版本(或0.12)。