일부 중복 항목이 포함된 숫자/문자열 배열이 제공되며 배열에 있는 각 요소의 빈도를 반환하기만 하면 됩니다.
요소를 키로 사용하고 해당 값을 빈도로 사용하여 개체를 반환하는 것이 이 상황에 적합합니다.
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 }