JavaScript - 配列をオブジェクトに変換する4つの方法

配列をオブジェクトに変換する方法を紹介します。

1. Object.assign() で配列をオブジェクトに変換

Object.assign(target, source) は、ソースの内容をターゲットにコピーします。以下のように配列をsourceに渡すと、「0」、「1」、「2」のようにIndexがkeyになり、配列の要素がvalueからなるオブジェクトが生成されます。

let arr = ['first', 'second', 'third'];

let obj = Object.assign({}, arr);
console.log(obj);

Output:

{ '0': 'first', '1': 'second', '2': 'third' }

2. Spread operatorで配列をオブジェクトに変換

Spread operatorを使用して、次のように配列をオブジェクトに変換できます。 key は Index になります。

let arr = ['first', 'second', 'third'];

let obj = {...arr}
console.log(obj);

Output:

{ '0': 'first', '1': 'second', '2': 'third' }

3. forEach() で配列をオブジェクトに変換

キーがIndexではなく任意の値に変更したい場合は、forEachなどのイテレーションステートメントを使用して配列を直接オブジェクトに変換できます。

let arr = ['first', 'second', 'third'];
let obj = {};

arr.forEach((element, index) => {
  obj['key' + index] = element;
});

console.log(obj);

Output:

{ key0: 'first', key1: 'second', key2: 'third' }

4. Array.reduce() で配列をオブジェクトに変換

forEach() の代わりに Array.reduce() を使用して特定のキーでオブジェクトを作成できます。

let arr = ['first', 'second', 'third'];

let obj = arr.reduce((accumulator, value, index) => {
  return {...accumulator, ['key' + index]: value};
}, {});

console.log(obj);

Output:

{ key0: 'first', key1: 'second', key2: 'third' }

5. Object.fromEntries() で key-value ペアの配列をオブジェクトに変換

Object.fromEntries() は key-value 要素を持つ Array または Map を引数として渡すとオブジェクトに変換します。

let arr = [['first', 'A'], ['second', 'B'], ['third', 'C']];

let obj = Object.fromEntries(arr);
console.log(obj);

Output:

{ first: 'A', second: 'B', third: 'C' }

ちなみに、 Object.fromEntries() で Map をオブジェクトとして渡すと、以下のように実装できます。

let map = new Map([['first', 'A'], ['second', 'B'], ['third', 'C']]);
console.log(map);

let obj = Object.fromEntries(map);
console.log(obj);

Output:

Map(3) { 'first' => 'A', 'second' => 'B', 'third' => 'C' }
{ first: 'A', second: 'B', third: 'C' }
codechachaCopyright ©2019 codechacha