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

배열 JavaScript의 모든 요소에 대한 빈도 맵 작성

<시간/>

일부 중복 항목이 포함된 숫자/문자열 배열이 제공되며 배열에 있는 각 요소의 빈도를 반환하기만 하면 됩니다.

요소를 키로 사용하고 해당 값을 빈도로 사용하여 개체를 반환하는 것이 이 상황에 적합합니다.

forEach() 루프를 사용하여 배열을 반복하고 이미 존재하는 경우 객체의 요소 수를 계속 증가시킵니다. 그렇지 않으면 객체의 해당 요소에 대한 새 속성을 생성합니다.

마지막으로 객체를 반환합니다.

이 문제의 전체 코드는 다음과 같습니다. -

const arr = [2,5,7,8,5,3,5,7,8,5,3,4,2,4,2,1,6,8,6];
const getFrequency = (array) => {
   const map = {};
   array.forEach(item => {
      if(map[item]){
         map[item]++;
      }else{
         map[item] = 1;
      }
   });
   return map;
};
console.log(getFrequency(arr));

콘솔의 출력은 다음과 같습니다. -

{ '1': 1, '2': 3, '3': 2, '4': 2, '5': 4, '6': 2, '7': 2, '8': 3 }