replit을 풀다가 이 문제를 보고 든 생각은 인자의 개수에 따라 다른 결과값(?)을 주는 방법이 있나? 였다.
엄청 어려운 문제로 생각했지만 검색을 해보니 쉬운 문제였어서 소개해보도록 하려고 한다.
"1234년"
과 같은 형식의 문자열을 리턴 해주세요."1234년 5월"
과 같은 형식의 문자열을 리턴 해주세요."1234/5/6"
과 같은 형식의 문자열을 리턴 해주세요.meetAt(2022); // 결과 --> "2022년" meetAt(2032, 3); // 결과 --> "2032년 3월" meetAt(1987, 10, 28); // 결과 --> "1987/10/28"
function meetAt(year, month, date) { if (date) { return year + "/" + month + "/" + date; } else if (month) { return year + "년 " + month + "월"; } else if (year) { return year + "년"; } }
일단 boolean 객체를 알아야 한다. boolean
은 값이 존재하면 true, 값이 비어있으면 false이다.
if 문의 조건식
도 조건이 될 수 있는 값은 boolean이기 때문에 인자의 값의 유무에 따라 true, false가 정해진다.
그걸 활용해 if else 문을 사용하면 받은 인자의 개수에 따라 다른 결과값을 출력할 수 있다.
function meetAt(year, month, date) { if (arguments.length === 1) { //arguments.length 로 인자의 갯수를 확인 return arguments[0] + "년"; } else if (arguments.length === 2) { return arguments[0] + "년 " + arguments[1] + "월"; } else if (arguments.length === 3) { return arguments[0] + "/" + arguments[1] + "/" + arguments[2]; } }
구글링을 해보니 문제를 푸는 또 다른 방법이 있었다.
arguments.length
를 통해서 전달받은 인자의 개수를 확인하고 그에 따라 다른 결과값을 리턴하면 된다.