はじめに
JavaScript stage 0,1,2,3 Advent Calendar 2015の記事です。
tc39/proposal-object-values-entriesについて書きます。
Object.values/Object.entriesとは?
TC39に提案中のJavaScriptの新文法です。
現在はFirefoxのNightlyビルドにのみ実装されています。
JSONデータを処理する時など、Objectの値を列挙したいことがあります。
この時に使うメソッドです。
今回、対象とするオブジェクト
var obj = {
a : "alpha",
b : "bravo"
}
ES5では
Object.keysを使います。
例えば
Object
.keys(obj)
.forEach(function(key){
console.log(obj[key])
})
ES2015では
ES2015ではfor ofが追加されました。
しかしobject自体は反復処理可能ではありません。
そこで、Object.keysでキーの配列が取得できます。
for-of中でobj
から値を取り出します。
for(var key of Object.keys(obj)){
console.log(obj[key])
}
できれば、obj
の値を列挙したいです。
ESNext
そこでObject.valuesです。もうちょっと直感的な書き方ができます。
for(var val of Object.values(obj)){
console.log(val)
}
Object.entriesはキーと値を両方返します。
for(var [key, val] of Object.entries(obj)){
console.log(key, val)
}