JS.next

JavaScriptの最新実装情報を追うブログ

{Map,Set}.prototype.{values,keys,entries}が実装された

概要

Array.prototype.{values,keys,entries}と同じような要領でコレクションを列挙することができる。
列挙される順序はコレクションに加えた順序と同じであることが保証される。


map = new Map

map.set('a', 1)
map.set('c', 2)
map.set('e', 3)
mk = map.keys()

mk.next()  // {value: "a", done: false}
map.set('b', 4)
mk.next()  // {value: "c", done: false}
map.delete('e')
mk.next()  // {value: "b", done: false}

mk.next()  // {value: undefined, done: true}
map.set('d', 5)
mk.next()  // {value: undefined, done: true}

※Set.prototype.keysはSet.prototype.valuesに等しい※

me =  map.entries()

for (let entry of me) console.log(entry)
  // ["a", 1]
  // ["c", 2]
  // ["b", 4]
  // ["d", 5]

Map.prototype.entriesでは[key, value]の形で列挙される。
Map.prototype.forEachの(value, key)の形とは反対なので注意。


実装されるバージョン

V8 3.27.18.1 3.28.8(Set.prototype.keysを追加)