공통 키를 사용하여 JavaScript 개체 병합
JavaScript에서 개체 병합은 간단할 수 있습니다. 그러나 여러 개체가 공통 키를 공유하고 해당 값을 결합해야 하는 개체 배열을 처리할 때 프로세스가 더욱 복잡해집니다. 아래 예를 고려하십시오.
<code class="js">var array = [ { name: "foo1", value: "val1" }, { name: "foo1", value: ["val2", "val3"] }, { name: "foo2", value: "val4" } ];</code>
목표는 동일한 이름 키와 연관된 모든 값이 함께 병합되는 형식으로 배열을 재구성하는 것입니다. 예상되는 출력은 다음과 같습니다.
<code class="js">var output = [ { name: "foo1", value: ["val1", "val2", "val3"] }, { name: "foo2", value: ["val4"] } ];</code>
이러한 병합을 달성하기 위한 한 가지 효과적인 접근 방식은 입력 배열을 반복하고 동일한 이름 키를 가진 기존 개체를 필터링하는 것입니다. 기존 개체가 발견되면 해당 값이 업데이트되어 새 값을 포함합니다. 그렇지 않으면 새 객체가 생성되어 출력 배열에 추가됩니다.
다음은 구현 예입니다.
<code class="js">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); } });</code>
이 접근 방식을 사용하면 각 이름 키와 연결된 값이 출력 배열 내의 단일 개체. 입력 배열을 반복하고 기존 객체와 새 객체를 모두 처리함으로써 객체를 공통 키와 병합하기 위한 포괄적인 솔루션을 제공합니다.
위 내용은 공통 키가 있는 JavaScript 개체를 값이 결합된 새 배열로 병합하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!