>웹 프론트엔드 >JS 튜토리얼 >JavaScript 개체 배열에서 동일한 키 값을 합산하는 방법은 무엇입니까?

JavaScript 개체 배열에서 동일한 키 값을 합산하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-26 13:03:10633검색

How to Sum Values of Identical Keys in an Array of JavaScript Objects?

객체 배열에서 유사한 키 값 합산

문제:

객체 배열이 주어지면 다음을 결정합니다. 동일한 값을 공유하는 객체와 연관된 값의 합계(또는 기타 수학적 연산)를 계산하는 방법 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.