>웹 프론트엔드 >JS 튜토리얼 >JavaScript 개체 배열에서 중복 키 값을 효율적으로 합산하는 방법은 무엇입니까?

JavaScript 개체 배열에서 중복 키 값을 효율적으로 합산하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-20 01:32:09955검색

How to Efficiently Sum Values of Duplicate Keys in a JavaScript Array of Objects?

객체 배열의 중복 키 값 합산

JavaScript에서 객체 배열을 처리할 때 다음이 필요할 수 있습니다. 중복 키를 병합하고 관련 값을 합산합니다. 다음과 같은 객체 배열이 있는 경우:

objArr = [
    {key: "Mon Sep 23 2013 00:00:00 GMT-0400", val: 42},
    {key: "Mon Sep 24 2013 00:00:00 GMT-0400", val: 78},
    {key: "Mon Sep 25 2013 00:00:00 GMT-0400", val: 23},
    {key: "Mon Sep 23 2013 00:00:00 GMT-0400", val: 54} // duplicate key
]

다음을 달성하는 것이 목표입니다.

reducedObjArr = [
    {key: "Mon Sep 23 2013 00:00:00 GMT-0400", val: 96},
    {key: "Mon Sep 24 2013 00:00:00 GMT-0400", val: 78},
    {key: "Mon Sep 25 2013 00:00:00 GMT-0400", val: 23}
]

값을 반복하고 푸시하는 대신 Map 및 Reduce를 활용하는 보다 효율적인 접근 방식이 있습니다.

let counts = objArr.reduce((prev, curr) => {
  let count = prev.get(curr.key) || 0;
  prev.set(curr.key, curr.val + count);
  return prev;
}, new Map());

키를 객체 키로, 값을 합산 값으로 사용하여 맵을 생성합니다. 마지막으로 맵은 다음을 사용하여 배열로 다시 변환됩니다.

let reducedObjArr = [...counts].map(([_, value]) => {
  return {key, value}
})

이 접근 방식은 더 간결하며 수동 반복과 관련된 오류 위험을 제거합니다.

위 내용은 JavaScript 개체 배열에서 중복 키 값을 효율적으로 합산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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