[javascript] 객체의 속성 값 중에 가장 많은 값 찾기
가장 간단한 방법은 객체의 속성 값을 배열로 변환한 후, 배열의 요소들을 세어 가장 많은 값을 찾는 것입니다. 다음은 이 방법을 사용한 예시 코드입니다.
// 예시 객체
const obj = {
color: 'red',
shape: 'circle',
size: 'medium',
type: 'fruit',
taste: 'sweet',
cost: 'cheap',
availability: 'year-round'
};
// 객체의 속성 값들을 배열로 변환
const values = Object.values(obj);
// 각 값들의 개수를 세기 위한 객체 생성
const valueCount = {};
// 각 값들의 개수 세기
values.forEach(value => {
if (valueCount[value]) {
valueCount[value]++;
} else {
valueCount[value] = 1;
}
});
// 가장 많은 값을 찾기 위한 초기화
let maxCount = 0;
let mostFrequentValue = '';
// 가장 많은 값을 찾기
Object.entries(valueCount).forEach(([value, count]) => {
if (count > maxCount) {
maxCount = count;
mostFrequentValue = value;
}
});
console.log(`가장 많은 값: ${mostFrequentValue}, 개수: ${maxCount}`);
위 코드를 실행하면 객체 obj
의 속성 값 중에서 가장 많이 나온 값을 찾을 수 있습니다. valueCount
객체는 각 값들의 개수를 저장하는 데 사용되며, mostFrequentValue
변수에는 가장 많이 나온 값을 저장합니다.
참고로, 만약 최다값이 여러 개인 경우에는 첫 번째로 등장한 값을 반환합니다.
이와 비슷한 작업은 라이브러리나 프레임워크에서도 많이 사용되는데, 이러한 기능을 제공하는 함수가 이미 존재할 수도 있으므로 사용 가능한 라이브러리를 확인해 보는 것도 좋습니다.