Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript:배열 요소 속성을 비교하고 동일하면 결합

<시간/>

다음과 같은 일부 데이터 저장 장치에 대한 정보를 포함하는 객체 배열이 있다고 가정합니다.

const drives = [
   {size:"900GB", count:3},
   {size:"900GB", count:100},
   {size:"1200GB", count:5},
   {size:"900GB", count:1}
];

같은 크기가 여러 번 나타나는 것처럼 주의하십시오.

우리는 그러한 배열 하나를 취하고 모든 반복 크기를 하나의 단일 배열 인덱스로 통합하고 그 개수를 합산하는 함수를 작성해야 합니다.

예시

const drives = [
   {size:"900GB", count:3},
   {size:"900GB", count:100},
    {size:"1200GB", count:5},
   {size:"900GB", count:1}
];
const groupDrives = (arr = []) => {
   const map = drives.reduce((map, e) => {
      if (e.size in map) map[e.size].count += e.count
      else map[e.size] = e
         return map;
   }, {})
   const result = Object.keys(map).map(function (k) {
      return this[k]
   }, map);
   return result;
}
console.log(groupDrives(drives));

출력

콘솔의 출력은 -

[ { size: '900GB', count: 104 }, { size: '1200GB', count: 5 } ]