共有キーを使用して配列内の JavaScript オブジェクトを結合する
JavaScript では、多くの場合、類似したキーを持つオブジェクトを 1 つのオブジェクトに結合する必要があります。 。次の例を考えてみましょう。
<code class="js">const array = [ { name: "foo1", value: "val1" }, { name: "foo1", value: ["val2", "val3"] }, { name: "foo2", value: "val4" } ];</code>
目標は、この配列を、すべての値キーが共有名を持つオブジェクトにマージされる「出力」配列に再編成することです。予想される出力は次のようになります。
<code class="js">const output = [ { name: "foo1", value: ["val1", "val2", "val3"] }, { name: "foo2", value: ["val4"] } ];</code>
オブジェクトのマージ
この問題に対する 1 つのアプローチは、次の手順を使用することです。
コード例
次のコードは、説明されているアプローチを実装します。
<code class="js">const array = [ { name: "foo1", value: "val1" }, { name: "foo1", value: ["val2", "val3"] }, { name: "foo2", value: "val4" } ]; let output = []; array.forEach(item => { const existing = output.filter(v => v.name == item.name); if (existing.length) { const 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.log(output);</code>
このコードは、同じ名前を持つすべてのオブジェクトの値がマージされた、目的の出力配列を生成します。
以上が共有キーを使用して配列内の JavaScript オブジェクトをマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。