문제:
객체 배열이 주어지면 다음을 결정합니다. 동일한 값을 공유하는 객체와 연관된 값의 합계(또는 기타 수학적 연산)를 계산하는 방법 key.
예:
다음 객체 배열을 고려하세요.
[ { 'name': 'P1', 'value': 150 }, { 'name': 'P1', 'value': 150 }, { 'name': 'P2', 'value': 200 }, { 'name': 'P3', 'value': 450 } ]
원하는 출력은 객체의 '값' 속성을 합산합니다. 일치하는 'name' 속성을 사용하여 결과 in:
[ { 'name': 'P1', 'value': 300 }, { 'name': 'P2', 'value': 200 }, { 'name': 'P3', 'value': 450 } ]
해결책:
해결책에는 입력 배열을 반복하여 동일한 키 값을 별도의 개체로 집계하는 작업이 포함됩니다.
var obj = [ { 'name': 'P1', 'value': 150 }, { 'name': 'P1', 'value': 150 }, { 'name': 'P2', 'value': 200 }, { 'name': 'P3', 'value': 450 } ]; var holder = {}; obj.forEach(function(d) { if (holder.hasOwnProperty(d.name)) { holder[d.name] = holder[d.name] + d.value; } else { holder[d.name] = d.value; } });
결과 홀더 객체에는 키가 고유한 이름 값이고 값이 관련 값의 합계인 키-값 쌍이 포함됩니다.
{ 'P1': 300, 'P2': 200, 'P3': 450 }
원하는 출력을 생성하려면 홀더 개체의 속성을 반복하고 새 개체를 만듭니다.
var obj2 = []; for (var prop in holder) { obj2.push({ name: prop, value: holder[prop] }); }
obj2에 저장된 최종 결과는 요구 사항을 충족합니다. 유사한 키를 가진 객체의 값을 합산합니다.
위 내용은 JavaScript 개체 배열에서 동일한 키 값을 합산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!