객체 배열의 중복 키 값 합산
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!