여러 인자 받아서 결과 반환

zioni·2022년 7월 16일
0

Javascript

목록 보기
1/6
  • 함수실행하면 나오는코드
meetAt(2022); // 결과 => "2022년"
meetAt(2032, 3); // 결과 => "2032년 3월"
meetAt(1995, 10, 22) // 결과 => "1995/10/22"

생각보다 쉽지 않았다 맨처음 내가 작성한 코드이다
너무 단순하게 생각해서 인자가 undefined인 조건문으로 함수를 작성했는데
콘솔에 찍어보니 제대로 작동이 안됐다
결과는 // "2022년"
그다음 조건은 실행이 안된다는거...

const meetAt = (year,month,day) => {
  if (day === undefined || month === undefined) {
    return year + "년";
  } else if (day === undefined) {
    return year + "년" + month + "월";
  } else {
    return year + "/" + month + "/" + day;
  }
};

열심히 구글링해본 결과 aruguments.length 속성을 찾았다.
실제로 함수에 전달된 arguments 의 수를 제공한다고 나와있다.

function meetAt  (year, month, date) {
  if (arguments.length === 1) {
    return year + "년";
  } else if (arguments.length === 2) {
    return year + "년" + month + "월";
  } else {
    return year + "/ " + month + "/" + date;
  }
};

meetAt(2022,1,11)

찾아보니 더 간단하게 함수를 구현하는 법을 찾았다!!
무조건 첫번째 인자부터 생각해서 함수만드려는게 아니라 마지막인자가 있으면 조건문을 구현해본다는
생각을 미쳐하지 못했다.

const meetAt = (year, month, day) => {
  if (day) {
    return year + "/" + month + "/" + day;
  } else if (month) {
    return year + "년" + month + "월";
  } else {
    return year + "년";
  }
};

meetAt(2022, 3,22);

0개의 댓글