[JavaScript] 인자 개수에 따라 다른 결과값 주기

빵호·2021년 8월 7일
0

JavaScript

목록 보기
10/28
post-thumbnail

replit을 풀다가 이 문제를 보고 든 생각은 인자의 개수에 따라 다른 결과값(?)을 주는 방법이 있나? 였다.

엄청 어려운 문제로 생각했지만 검색을 해보니 쉬운 문제였어서 소개해보도록 하려고 한다.

문제

  • 인자를 세개 받습니다.
    1. 첫번째 인자는 년도에 해당하는 숫자입니다.
    2. 두번째 인자는 월에 해당하는 숫자입니다.
    3. 세번째 인자는 일에 해당하는 숫자입니다.
  • 년도 인자만 받았을 경우 → "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를 통해서 전달받은 인자의 개수를 확인하고 그에 따라 다른 결과값을 리턴하면 된다.

profile
늘 한결같이 꾸준히

0개의 댓글