1. ホーム
  2. javascript

[解決済み] 配列からオブジェクトへの変換

2022-03-15 10:59:31

質問

変換方法を教えてください。

['a','b','c']

になります。

{
  0: 'a',
  1: 'b',
  2: 'c'
}

解決方法は?

ECMAScript 6 では、簡単にポリフィルが可能な Object.assign :

Object.assign() メソッドは、すべての 列挙可能な自身のプロパティを1つまたは複数のソースオブジェクトからターゲット オブジェクトを作成します。ターゲット・オブジェクトを返します。

Object.assign({}, ['a','b','c']); // {0:"a", 1:"b", 2:"c"}

自身の length プロパティは列挙できないため、コピーされません。

また、ES8 拡散構文 をオブジェクトに適用して、同じ結果を得ることができます。

{ ...['a', 'b', 'c'] }

カスタムキーを使用する場合は 減らす :

['a', 'b', 'c'].reduce((a, v) => ({ ...a, [v]: v}), {}) 
// { a: "a", b: "b", c: "c" }