Object.fromEntries() メソッドは、キーと値の組み合わせのリストをオブジェクトに変換します。

構文

Object.fromEntries(iterable);

引数

iterable
反復処理プロトコルを実装している ArrayMap やその他の反復処理可能なオブジェクトです。

返値

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

説明

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

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

Map から Object への変換

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

const map = new Map([ ['foo', 'bar'], ['baz', 42] ]);
const obj = Object.fromEntries(map);
console.log(obj); // { foo: "bar", baz: 42 }

Array から Object への変換

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

const arr = [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ];
const obj = Object.fromEntries(arr);
console.log(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 ])
);

console.log(object2);
// { a: 2, b: 4, c: 6 }

仕様書

仕様書 状態
https://tc39.github.io/proposal-object-from-entries の提案 Stage 3

ブラウザーの対応

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
基本対応Chrome 未対応 なしEdge 未対応 なしFirefox 完全対応 63IE 未対応 なしOpera 未対応 なしSafari 未対応 なしWebView Android 未対応 なしChrome Android 未対応 なしEdge Mobile 未対応 なしFirefox Android 完全対応 63Opera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android 未対応 なしnodejs 未対応 なし

凡例

完全対応  
完全対応
未対応  
未対応

関連情報

ドキュメントのタグと貢献者

このページの貢献者: mfuji09
最終更新者: mfuji09,