JavaScriptで2つの配列を組み合わせてオブジェクトの配列を作成する方法
JavaScriptでは、2つの配列を1つの配列(オブジェクトの配列)にまとめたい場面がよくあります。本記事では、map()メソッドを使ったシンプルな結合方法を、サンプルコードと実行結果つきで解説します。
例となる2つの配列
まず、次のような2つの配列を用意します。
var firstArray = ['John', 'David', 'Bob']; var secondArray = ['Mike', 'Sam', 'Carol'];
この2つの配列を、対応する要素同士をペアにした1つの配列へと結合していきます。
map()を使って配列を結合する
2つの配列を組み合わせるには、JavaScriptのmap()メソッドを使用します。map()は、元の配列の各要素に対してコールバック関数を実行し、その戻り値から新しい配列を生成するメソッドです。コールバック関数には「現在の値」と「インデックス」が渡されるため、インデックスをもとにもう一方の配列の対応する要素を取得できます。
サンプルコード
var firstArray = ['John', 'David', 'Bob'];
var secondArray = ['Mike', 'Sam', 'Carol'];
var arrayOfObject = firstArray.map(function (value, index) {
return [value, secondArray[index]];
});
console.log("最初の配列=");
console.log(firstArray);
console.log("2番目の配列=");
console.log(secondArray);
console.log("結合された配列オブジェクト=");
console.log(arrayOfObject);
プログラムの実行方法
上記のプログラムは、Node.js環境で次のコマンドを実行することで動作を確認できます。
node fileName.js
ここでは、ファイル名を「demo190.js」としています。ターミナルやコマンドプロンプトでファイルを保存したディレクトリに移動してから実行してください。
出力結果
実行すると、以下のような出力が得られます。
PS C:\Users\Amit\javascript-code> node demo190.js 最初の配列= [ 'John', 'David', 'Bob' ] 2番目の配列= [ 'Mike', 'Sam', 'Carol' ] 結合された配列オブジェクト= [ [ 'John', 'Mike' ], [ 'David', 'Sam' ], [ 'Bob', 'Carol' ] ]
このように、firstArrayとsecondArrayの同じ位置にある要素がペアとなり、新しい入れ子構造の配列が生成されました。
補足:キー付きのオブジェクト配列を作りたい場合
上記の方法では、各要素が「配列」になります。もし { firstName: ..., secondName: ... } のようなキーを持つオブジェクトの配列が必要な場合は、アロー関数とオブジェクトリテラルを組み合わせて次のように書きます。
var result = firstArray.map((value, index) => ({
firstName: value,
secondName: secondArray[index]
}));
console.log(result);
// [ { firstName: 'John', secondName: 'Mike' },
// { firstName: 'David', secondName: 'Sam' },
// { firstName: 'Bob', secondName: 'Carol' } ]
用途に応じて、「配列のペア」形式と「キー付きオブジェクト」形式を使い分けるとよいでしょう。
-
JavaScriptで2つの配列を乗算する方法|forループとmap()の実装例
JavaScriptで2つの配列の各要素同士を乗算し、その結果を新しい配列として取得する方法を解説します。基本的にはforループでインデックスを順番に処理しながら、対応する位置にある要素同士を掛け合わせていくシンプルなアプローチです。 2つの配列を乗算するサンプルコード 以下の例では、「CLICK HERE」ボタンをクリックすると、配列 arr と arr1 の対応する要素が乗算され、結果が新しい配列 multArray に格納された上で画面に表示されます。 <!DOCTYPE html> <html lang=en> <head> <meta ch
-
【JavaScript入門】複数のオブジェクトを1つにマージして単一のオブジェクト配列を作成する方法
JavaScriptでは、Object.assign()メソッドとスプレッド構文(...)を組み合わせることで、配列内の複数のオブジェクトを1つのオブジェクトに簡単にマージすることができます。 Object.assign()は、1つ以上のコピー元オブジェクトから、コピー先のオブジェクトへすべてのプロパティをコピーするためのメソッドです。スプレッド構文を使って配列の要素を展開することで、各オブジェクトのキーと値が1つのオブジェクトに統合されます。 コード例 以下のコードは、配列内の複数のオブジェクトを単一のオブジェクトにマージする例です。 <!DOCTYPE html> <ht