인자로 초(second)를 받을 때, 분, 시간, 일, 년 으로 변환해서 출력하라.
1이 아닐 경우는 단위 뒤에s를 붙여라.
EX)
n: 1 => 1second
n: 25 => 25seconds
n: 123 => 2minutes 3seconds
n: 3666 => 1hour 1minute 6secodns
function timeChange(num) { let answer = ''; const obj = { second: (n) => { return [n % 60, n / 60|0]; }, minute: (n) => { return [n % 60, n / 60|0]; }, hour: (n) => { return [n % 24, n / 24|0]; }, day: (n) => { return [n % 365, n / 365|0]; }, year: (n) => [n, 0] }; for(let k in obj) { const [result, remainder] = obj[k](num); result ? answer = result + (result > 1 ? `${k}s ` : `${k} `) + answer : null; num = remainder; if(!num) break; } return answer; }처음에 고민을 많이 했던게
if문으로 조건을 다 걸어 해야되나, 아니면switch문을 써야되나였다.
그러다가 객체의value로 함수를 할당하면key호출로 객체 인자들을 함수로 사용할 수 있는게 생각나서 사용해 보기로했다.객체
obj를 선언하고,key값은 각 시간의 단위를 설정,value는 인자를 받아서 시간 단위로 나눠서 나눈 값이랑 나머지를return하게 함.나눈 값이
0이면 문자열에 추가되지 않게 하고, 그렇지 않을 때는 1보다 크면 단위값 뒤에s를 붇이게 함.더 이상 나눌수 없으면 반복문을 종료해서 문자열을 최종적으로
return하게 함.