JavaScript

Object.fromEntries()メソッド

 編集:2022.07.28 by T.A.

キーと値の組み合わせのリストをオブジェクトに変換します。

Object.fromEntries(iterable);
iterable 反復処理プロトコルを実装している Array や Map やその他の反復処理可能なオブジェクトです。
戻り値

反復可能な項目から作成されたプロパティを持つ新しいオブジェクト。

解説

Object.fromEntries() メソッドは、キーと値のリストを取り、これらの項目から作成されたプロパティを持つ新しいオブジェクトを返します。引数の iterable は @@iterator メソッドを実装しており、オブジェクトのような二つの要素を持ち、最初の要素がプロパティ キーとして使われる値であり、次の要素がプロパティのキーに関連付けられる値であるようなオブジェクトであることが求められます。

Object.fromEntries() は Object.entries() の逆の動作をします。

Map から Object への変換

Object.fromEntries では、 Map を Object に変換することができます。

const map = new Map([ ['foo', 'bar'], ['baz', 42] ]);
const obj = Object.fromEntries(map);
D=obj;	//={ foo: "bar", baz: 42 }
Array から Object への変換

Object.fromEntries では、Array を Object に変換することができます。

const arr = [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ];
const obj = Object.fromEntries(arr);
D=obj;	//={ 0: "a", 1: "b", 2: "c" }
オブジェクトの変形

Object.fromEntries、逆のメソッド Object.entries()、配列操作メソッドを使用して、以下のようにオブジェクトを変形することができます。

const object1 = { a: 1, b: 2, c: 3 };
const object2 = Object.fromEntries(
  Object.entries(object1)
  .map(([ key, val ]) => [ key, val * 2 ])
);
D=object2;	//={ a: 2, b: 4, c: 6 }

テスト