2014-10-17 54 views
1

當我開始節點v0.11.14 REPL與--harmony選項工作,並嘗試換的循環,我得到:對於-的環路節點--harmony不使用數組

> 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 

雖然從ecmascript wiki page第一個例子是:

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

MDN pageTraceur docs包含相同的例子。我沒有google「for-of in nodejs」。它應該在Node中工作還是我錯過了一些東西?

回答

1

for .. of和迭代對象分別在v8中實現。它看起來像v8與節點0.11.14捆綁在一起,您只能將它與發生器一起使用。

您可以檢查obj[Symbol.iterator]屬性以查看對象是否可迭代,它應該是一個函數。在我的節點與V8 3.29.93構建一切按預期工作。所以,你可能不得不等待下一個0.11版本(或0.12)。