CARVIEW |
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
Object.fromEntries()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2020年1月.
Object.fromEntries()
は静的メソッドで、キーと値の組み合わせのリストをオブジェクトに変換します。
試してみましょう
const entries = new Map([
["foo", "bar"],
["baz", 42],
]);
const obj = Object.fromEntries(entries);
console.log(obj);
// 予想される結果: Object { foo: "bar", baz: 42 }
構文
Object.fromEntries(iterable)
引数
返値
反復可能な項目から作成されたプロパティを持つ新しいオブジェクト。
説明
Object.fromEntries()
メソッドは、キーと値のリストを取り、これらの項目から作成されたプロパティを持つ新しいオブジェクトを返します。 iterable
引数は [Symbol.iterator]()
メソッドを実装しているオブジェクトであることが求められます。このメソッドは 2 つの要素を持った配列風オブジェクトを生成するイテレーターを返します。最初の要素はプロパティキーとして使われる値であり、次の要素はプロパティのキーに関連付けられる値です。
Object.fromEntries()
は Object.entries()
の逆の動作をしますが、 Object.entries()
は文字列キーのプロパティしか返さないのに対し、 Object.fromEntries()
はシンボルキーのプロパティも作成することができます。
メモ:
Array.from()
と異なり、 Object.fromEntries()
は this
の値を使用しないので、他のコンストラクターで呼び出してもその型のオブジェクトは作成されません。
例
>Map から Object への変換
Object.fromEntries
では、 Map
を Object
に変換することができます。
const map = new Map([
["foo", "bar"],
["baz", 42],
]);
const obj = Object.fromEntries(map);
console.log(obj); // { foo: "bar", baz: 42 }
Array から Object への変換
Object.fromEntries
では、 Array
を Object
に変換することができます。
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 }
仕様書
Specification |
---|
ECMAScript® 2026 Language Specification> # sec-object.fromentries> |
ブラウザーの互換性
Loading…