push()を使ってJavaScriptで連想配列(オブジェクト)を作成する方法
JavaScriptで連想配列(オブジェクト)を作成するには、forEach()ループとpush()メソッドを組み合わせるのが便利です。この記事では、配列内のデータをキーごとにグループ化して、新しいオブジェクトへ格納する方法を解説します。
基本的な考え方
元データとなる配列をforEach()で順番に処理し、各要素のキー(ここでは学生ID)に対応する値を、あらかじめ用意した空のオブジェクトにpush()で追加していきます。同じキーが現れた場合は、既存の配列に値を追記することで、自動的にグループ化されます。
サンプルコード
以下は、学生IDごとに学生名をまとめる例です。
var studentDetails =
[
{
studentId: 1,
studentName: "John"
},
{
studentId: 1,
studentName: "David"
},
{
studentId: 2,
studentName: "Bob"
},
{
studentId: 2,
studentName: "Carol"
}
]
studentObject = {};
studentDetails.forEach(function (obj) {
studentObject[obj.studentId] = studentObject[obj.studentId] || [];
studentObject[obj.studentId].push(obj.studentName);
});
console.log(studentObject);
コードのポイント
studentObject[obj.studentId] = studentObject[obj.studentId] || []; の部分が重要です。これは「該当キーがまだ存在しない場合は空の配列で初期化する」という処理で、これにより同じIDに対して複数の名前を安全に追加できます。続くpush()で、そのIDに紐づく学生名を配列へ追加しています。
プログラムの実行方法
上記のプログラムを実行するには、Node.jsを使って次のコマンドを入力します。
node fileName.js
ここでは、ファイル名を「demo116.js」として保存したものとしています。
実行結果
プログラムを実行すると、以下のように学生IDをキーとした連想配列が出力されます。
PS C:\Users\Amit\JavaScript-code> node demo116.js
{ '1': [ 'John', 'David' ], '2': [ 'Bob', 'Carol' ] }
このように、ID「1」には「John」と「David」、ID「2」には「Bob」と「Carol」がそれぞれ配列としてまとめられていることが確認できます。forEach()とpush()を組み合わせれば、APIから取得したデータのグループ化など、さまざまな場面で応用できるでしょう。
-
JavaScriptでnewキーワードを使って配列を作成する方法
JavaScriptでは、newキーワードとArray()コンストラクタを使用することで、簡単に配列を作成できます。本記事では、実際に動作するサンプルコードとともに、その基本的な使い方を解説します。 サンプルコード 以下は、newキーワードを使用してJavaScriptの配列を作成するコード例です。 <!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-sca
-
【JavaScript】filterとjoinを組み合わせて、条件に合う配列要素だけを結合する方法
JavaScriptでは、filter()メソッドとjoin()メソッドを組み合わせることで、条件を満たす要素だけを抽出し、それらを任意の区切り文字で1つの文字列に結合できます。本記事では、配列の中から「2で割り切れる要素(偶数)」だけを取り出して結合する具体例を、動作するサンプルコードとともに解説します。 処理の流れ:filter() と join() の役割 filter():コールバック関数が true を返した要素だけを集めた新しい配列を作成します。元の配列は変更されません。 join():配列内のすべての要素を、引数で指定した区切り文字で連結し、1つの文字列として返します。引数