객체 배열에서 동일한 키 속성 값 결합
아래와 같은 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} ]
맵과 축소를 사용한 솔루션
값을 반복하고 푸시하는 대신 맵과 축소의 강력한 조합을 활용할 수 있습니다. 감소:
const 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 ]; // Convert data into a Map with reduce const counts = objArr.reduce((prev, curr) => { const count = prev.get(curr.key) || 0; prev.set(curr.key, curr.val + count); return prev; }, new Map()); // Map counts object back to an array const reducedObjArr = [...counts].map(([key, value]) => { return {key, value} }); console.log(reducedObjArr);
이 접근 방식은 동일한 키를 사용하여 값을 효과적으로 집계하고 결합하여 원하는 감소 결과를 얻습니다. 배열.
위 내용은 JavaScript 개체 배열에서 중복 키 값을 합산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!