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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-02 02:55:02902ブラウズ

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

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

共通のキーを共有する JavaScript オブジェクトから配列の内容を効率的に結合するには、次のような信頼できる解決策が 1 つあります。

  1. 既存の要素の特定: まず、配列を使用して、filter メソッドを使用して指定されたキーを持つ各オブジェクトを分離します。例:
<code class="javascript">var array = [
    {
        name: "foo1",
        value: "val1"
    }, {
        name: "foo1",
        value: ["val2", "val3"]
    }, {
        name: "foo2",
        value: "val4"
    }
];

var output = [];

array.forEach(function(item) {
  var existing = output.filter(function(v, i) {
    return v.name == item.name;
  });</code>
  1. 値の結合: 一致するオブジェクトが見つかった場合、そのインデックスが決定され、値が既存のオブジェクトの値配列に追加されます。 :
<code class="javascript">if (existing.length) {
    var existingIndex = output.indexOf(existing[0]);
    output[existingIndex].value = output[existingIndex].value.concat(item.value);</code>
  1. 追加新しいオブジェクト: 一致するオブジェクトのないキーが見つかった場合、そのキーは新しいオブジェクトとして出力配列に追加されます:
<code class="javascript">} else {
    if (typeof item.value == 'string')
      item.value = [item.value];
    output.push(item);</code>

これらの手順に従うことで、提供された配列を特定のキーに関連付けられたすべての値が配列内の単一のオブジェクトにマージされ、目的の出力に再編成されます。

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

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