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

JavaScript에서 객체의 중복 계산 및 집계 배열

<시간/>

다음과 같은 객체 배열이 있다고 가정해 보겠습니다. -

const arr = [
   {
      "Country": "BR",
      "New Lv1−Lv2": "#N/A"
   },
   {
      "Country": "BR",
      "New Lv1−Lv2": "#N/A"
   },
   {
      "Country": "",
      "New Lv1−Lv2": "test"
   }];

우리는 그러한 객체 배열 중 하나를 취하는 JavaScript 함수를 작성해야 합니다. 이 함수는 객체가 반복되지 않는 새 배열을 생성하고 반환합니다(반복되는 것은 "국가" 속성에 대해 동일한 값을 갖는 객체를 의미합니다.)

또한 함수는 원래 배열에 나타난 횟수를 나타내는 각 개체에 count 속성을 할당해야 합니다.

예시

이에 대한 코드는 -

const arr = [
   {
      "Country": "BR",
      "New Lv1−Lv2": "#N/A"
   },
   {
      "Country": "BR",
      "New Lv1−Lv2": "#N/A"
   },
   {
      "Country": "",
      "New Lv1−Lv2": "test"
   }];
   const convert = (arr) => {
      const res = {};
      arr.forEach((obj) => {
         const key = `${obj.Country}${obj["New Lv1−Lv2"]}`;
         if (!res[key]) {
            res[key] = { ...obj, count: 0 };
         };
         res[key].count += 1;
      });
   return Object.values(res);
};
console.log(convert(arr));

출력

콘솔의 출력은 -

[
   { Country: 'BR', 'New Lv1-Lv2': '#N/A', count: 2 },
   { Country: '', 'New Lv1-Lv2': 'test', count: 1 }
]