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

JavaScript에서 중복 값이 ​​있는 배열을 반복 발생 횟수가 있는 객체로 변환

<시간/>

다음과 같은 일부 중복 항목이 포함된 배열 문자열이 있다고 가정합니다. -

const arr = ['California','Texas','Texas','Texas','New
York','Missouri','New Mexico','California'];

우리는 그러한 배열을 취하는 JavaScript 함수를 작성해야 합니다. 그런 다음 우리 함수는 각 고유 항목에 대한 개체를 포함하는 개체 배열과 원래 배열의 개수를 포함하는 속성 "count"를 구성해야 합니다.

따라서 위 배열의 최종 출력은 다음과 같아야 합니다. -

const output = [
   {'name':'California', 'count':2},
   {'name':'Texas', 'count':3},
   {'name':'New York', 'count':1},
   {'name':'Missouri', 'count':1},
   {'name':'New Mexico', 'count':1},
];

예시

이에 대한 코드는 -

const arr = ['California','Texas','Texas','Texas','New York','Missouri','New Mexico','California'];
const findOccurrences = (arr = []) => {
   const res = [];
   arr.forEach(el => {
      const index = res.findIndex(obj => {
         return obj['name'] === el;
      });
      if(index === -1){
         res.push({
            "name": el,
            "count": 1
         })
      }
      else{
         res[index]["count"]++;
      };
   });
   return res;
};
console.log(findOccurrences(arr));

출력

콘솔의 출력은 -

[
   { name: 'California', count: 2 },
   { name: 'Texas', count: 3 },
   { name: 'New York', count: 1 },
   { name: 'Missouri', count: 1 },
   { name: 'New Mexico', count: 1 }
]