2014-01-17 29 views
0

如果你創建一個Map()是否有任何方法來迭代它?我知道節點0.12還沒有出來,但0.11.x是好它的方式,我不能算出它在devel的分支,在Node v.0.12中,是否有任何方法可以迭代Map()?

var m = new Map(); 
m.set('foo', 'bar'); 

不知道「富」,反正是有發現密鑰已設置?是否存在.keys()或任何可以允許這樣做的對象,或者我們運氣不好,直到v8獲得更多的ES6,從而釋放節點0.14。

回答

0

Node.js 0.12和iojs(自其初始版本以來)都對Map和Set實例執行迭代。隨着Map情況下,例如:

for (let entry of map) { 
    // Do something with entry, which looks like [key, val] 
} 

map.forEach(function (val, key) { 
    // Do something with key and val. 
}); 

如果你想迭代只是按鍵或只是數值,然後有返回迭代器稱爲keysvalues做到這一點輔助方法。

+0

我認爲這是幾個星期前的準確,但更新是爲了節點0.12現在是爲了。即使沒有--harmony標誌,Map.prototype.keys,Map.prototype.values和Map.prototype.forEach也都實現了(對Set來說是一樣的,儘管注意.keys()和.values()在這種情況下是同義的)。 – Semicolon

相關問題