JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptでJSONデータをキーごとにグループ化する方法を解説

JSONデータを特定のキー(この例では「name」)ごとにグループ化するには、元のオブジェクトからすべてのキーを取り出し、同じ値を持つ要素を新しいオブジェクト内の配列に push() メソッドで追加していくのが基本の考え方です。以下に具体的な手順とサンプルコードを紹介します。

サンプルコード

var details = {
    "1": {
        name: "John"
    },
    "2": {
        name: "John"
    },
    "3": {
        name: "David"
    }
};

var objectWithGroupByName = {};

for (var key in details) {
    var name = details[key].name;
    if (!objectWithGroupByName[name]) {
        objectWithGroupByName[name] = [];
    }
    objectWithGroupByName[name].push(details[key]);
}

console.log(objectWithGroupByName);

コードの解説

  • まず、グループ化した結果を格納するための空のオブジェクト objectWithGroupByName を用意します。
  • for...in ループで details の各キー("1", "2", "3")を順番に取り出します。
  • 各要素の name の値を取得し、その名前がまだ結果オブジェクトに存在しない場合は、空の配列を作成します。
  • 最後に push() を使って、該当する名前の配列に要素を追加していきます。

プログラムの実行方法

上記のプログラムを実行するには、Node.js環境で次のコマンドを使用します。

node fileName.js

出力結果

ここではファイル名を demo122.js としています。実行すると、nameの値ごとにデータがまとめられ、次のような出力が得られます。

PS C:\Users\Amit\JavaScript-code> node demo122.js
{
    John: [ { name: 'John' }, { name: 'John' } ],
    David: [ { name: 'David' } ]
}

このように、「John」という名前を持つ2つのオブジェクトと、「David」という名前を持つ1つのオブジェクトが、それぞれ別の配列にグループ分けされていることが確認できます。

補足:reduce() を使った別の書き方

ES5以降で利用できる reduce() メソッドを使うと、同様の処理をより簡潔に記述できます。

var grouped = Object.keys(details).reduce(function (acc, key) {
    var obj = details[key];
    (acc[obj.name] = acc[obj.name] || []).push(obj);
    return acc;
}, {});
console.log(grouped);

どちらの方法でも結果は同じですが、データ量が多い場合や配列形式のJSONを扱う場合は、reduce() を活用するとコードが読みやすくなります。用途に合わせて使い分けるとよいでしょう。

  1. JavaScriptで値に基づいてオブジェクトをグループ化する方法

    JavaScriptでは、reduce()メソッドを活用することで、配列内のオブジェクトを特定の値(プロパティ)に基づいて効率的にグループ化できます。たとえば、複数人のデータを「年齢」ごとにまとめたい場合などに役立ちます。ここでは、実際に動作するサンプルコードをもとに、実装手順と仕組みをわかりやすく解説します。 サンプルコード <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewpo

  2. JSONをExcelに変換する方法!Power Queryとオンラインツールの使い方を徹底解説

    JSON(JavaScript Object Notation)は、さまざまな種類のデータを保存するために広く利用されているデータ形式です。データの保存だけでなく、2つのサーバー間でデータをやり取りする際にも活用されており、APIなどを通じてWebサーバーと通信する場面でよく目にします。JSONファイルの構造は非常にシンプルで、配列とオブジェクトで構成されています。典型的なJSONファイルでは、キーと値のペアが配列内の各オブジェクトに格納されており、インデックスとキーを指定することで目的のデータにアクセスできます。プログラマーや開発者にとってJSONの構造はごく基本的なものですが、一般ユーザー