オブジェクトでmapメソッドを使う(JavaScript)

Web関連
配列の場合は以下のようにmapメソッドを使うことができます。
const array = [2, 3, 5]
console.log(array.map(e => e**2))
// [4, 9, 25]
しかし、objectの場合はmapやforEachが使えません。
const object = {a: 2, b: 3, c: 5}
console.log(object.map(e => e**2))
// Error: object.map is not a function
かわりにkeysメソッドを使います。
const object = {a: 2, b: 3, c: 5}
console.log(Object.keys(object).map(e => object[e]**2))
// [4, 9, 25]

Object.keys()にオブジェクトを渡すと、オブジェクトのキーの配列を返します
const object = {a: 2, b: 3, c: 5}
console.log(Object.keys(object).map(e => e))
// ["a", "b", "c"]
これを使って配列のような処理が実行できます。 注意点として、Object.keys()は挿入した順番を保証していないので、objectにキーを追加した順番に処理を行いたいときは使えません。

コメント

タイトルとURLをコピーしました