ホームページ >ウェブフロントエンド >jsチュートリアル >同じキーを持つ配列内の JavaScript オブジェクトをマージするにはどうすればよいですか?

同じキーを持つ配列内の JavaScript オブジェクトをマージするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-29 18:54:02169ブラウズ

How can I merge JavaScript objects in an array that have the same key?

同じキーを持つ配列内の JavaScript オブジェクトをマージする方法

JavaScript では、共通のキーを持つオブジェクトの配列があり、それらの値を単一のオブジェクトにマージする必要があります。これは、データの整理と集約に役立ちます。

たとえば、次のオブジェクトの配列を考えてみましょう:

<code class="javascript">var array = [
    {
        name: "foo1",
        value: "val1"
    }, {
        name: "foo1",
        value: [
            "val2",
            "val3"
        ]
    }, {
        name: "foo2",
        value: "val4"
    }
];</code>

この例では、オブジェクトはキー「name」を共有します。それらの値を 1 つのオブジェクトにマージするには、次のアプローチを使用できます。

<code class="javascript">var output = [];

array.forEach(function(item) {
  var existing = output.filter(function(v, i) {
    return v.name == item.name;
  });
  if (existing.length) {
    var existingIndex = output.indexOf(existing[0]);
    output[existingIndex].value = output[existingIndex].value.concat(item.value);
  } else {
    if (typeof item.value == 'string')
      item.value = [item.value];
    output.push(item);
  }
});

console.dir(output);</code>

このコードの出力は、2 つのオブジェクトの配列になります。

<code class="javascript">[
    {
        name: "foo1",
        value: [
            "val1",
            "val2",
            "val3"
        ]
    }, {
        name: "foo2",
        value: [
            "val4"
        ]
    }
]</code>

この結果では、 、「foo1」キーの値は単一の配列にマージされ、「foo2」キーは変更されません。このアプローチにより、共通のキーを共有する配列内のオブジェクトを効率的にマージし、それらの値をより組織化された表現に統合できます。

以上が同じキーを持つ配列内の JavaScript オブジェクトをマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。