※자바스크립트 100제는 여기서 다운받았습니다.
입출력 결과
입력: 원범 원범 혜원 혜원 혜원 혜원 유진 유진 출력: 혜원(이)가 총 4표로 반장이 되었습니다.
function vote() {
// 받은 이름들의 배열(names)
var names = [...arguments];
// 이름:득표수로 구성할 객체 생성(result)
var result = {};
// 배열 반복문으로 객체 내 특정 배열 항목(특정 이름)이 존재하면 (특정이름):득표수(+1)
for (var name of names) {
if (result[name]) {
result[name] = result[name] + 1;
} else {
result[name] = 1;
}
}
// result = {이름:득표수, 이름:득표수, 이름:득표수 ...}
// result의 value값만 뽑아내어 큰 순으로 정렬(sort_voteCount)
var voteCount = Object.values(result);
let sort_voteCount = voteCount.sort((a, b) => {
return b - a;
});
// sort_voteCount[0]과 일치하는 result 내 value의 인덱스 반환(idx)
var idx = 0;
for (var i = 0; i < voteCount.length; i++) {
if (Object.values(result)[i] === sort_voteCount[0]) {
idx = i;
}
}
// 해당 idx로 result의 name과 value를 통해 결과 출력
console.log(
Object.keys(result)[idx] +
"(이)가 " +
Object.values(result)[idx] +
"표로 당선되었습니다."
);
}
// **출력**
vote("원범", "원범", "혜원", "혜원", "혜원", "혜원", "유진", "유진");
>혜원(이)가 4표로 당선되었습니다.