새 학기를 맞아 호준이네 반은 반장 선거를 하기로 했습니다. 그런데 표를 하나씩 개표하는 과정이 너무 번거롭게 느껴진 당신은 학생들이 뽑은 후보들을 입력받으면 뽑힌 학생의 이름과 받은 표 수를 출력하는 프로그램을 작성하기로 하였습니다.
**입력**
원범 원범 혜원 혜원 혜원 혜원 유진 유진
**출력**
혜원(이)가 총 4표로 반장이 되었습니다.
const array = prompt('이름을 입력해주세요.').split(' ');
let result = {};
let winner = "";
for(let index in array){
let val = array[index];
result[val] = result[val] === undefined ? 1 : result[val] = result[val] + 1;
}
winner = Object.keys(result).reduce(function(a, b){
return result[a] > result[b] ? a : b
});
console.log(`${winner}(이)가 총 ${result[winner]}표로 반장이 되었습니다.`);
result
라는 변수에 학생 이름을 key
로 받은 표의 갯수를 value
로 객체를 생성합니다. 객체 생성 시 key
값에 학생이름이 존재를 하는 경우 해당 key
의 value
값에 1을 더하고, 그렇지 않은 경우에는 key
의 value
에 1을 부여합니다.
winner
이라는 변수에 reduce
함수를 이용해 최다득표학생명이 나올 수 있도록 합니다. 그리고 이 key
값에 해당 학생명을 key
로 하는 value
값이 생성될 수 있도록 합니다.