1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

配列からオブジェクトへ変換

Last updated at Posted at 2024-02-10

配列からオブジェクトへ変換

配列からオブジェクトに変換する方法(キーは連番)の備忘録。

1. reduce()メソッドを用いる

let array1 = [111, 222, 333, 444, 555, 666];

let obj = array1.reduce((acc, value, index) => {
    // acc は蓄積されるオブジェクト
    // value は現在の要素の値
    // index は現在のインデックス

    // スプレッド演算子を使用して、acc を展開し、新しいオブジェクトを作成し、新しいキーと値を追加する
    return { ...acc, ['key' + index]: value };
}, {} );

console.log(obj); 
// { key0: 111, key1: 222, key2: 333, key3: 444, key4: 555, key5: 666 }

ChatGPTによる説明

説明

このコードは、与えられた配列 array1 をオブジェクトに変換するために、Array.prototype.reduce() メソッドを使用しています。reduce() メソッドは、配列を単一の値(この場合はオブジェクト)にまとめるための高階関数です。

具体的には、以下の手順で動作します:

  1. reduce() メソッドの初期値として、空のオブジェクト {} が与えられます。これが acc(蓄積値)に初期設定されます
  2. 配列 array1 の各要素に対して、指定されたコールバック関数が実行されます
  3. コールバック関数は、蓄積値 acc、現在の要素の値 value、および現在のインデックス index を引数として取ります
  4. コールバック関数では、スプレッド演算子 {...acc} を使用して acc を展開し、新しいオブジェクトを作成します。また、新しいキーと値のペアを追加します。ここでは、['key' + index] をキーとして、value を値として追加しています
  5. reduce() メソッドは、次のループで使用する蓄積値として、新しく作成されたオブジェクトを返します
  6. 最後に、reduce() メソッドが完了した後、最終的なオブジェクトが obj 変数に格納されます

このコードを実行すると、array1 の各要素が obj オブジェクトにキーとしてマッピングされ、インデックスに基づいたキーが作成されます。

2. Object.fromEntries()を用いる

let array1 = [111, 222, 333, 444, 555, 666];
let obj = Object.fromEntries(array1.map((value, index) => ['key' + index, value]))
console.log(obj);
1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?