WEB/Java Script

[Java Script ]조건문 더 스마트하게 쓰기 / 배열의 내장함수 includes/ 객체를 활용한 조건문 / 조건마다 다른 함수를 실행해야 할때

자바칩 프라푸치노 2021. 4. 24. 01:23
function isAnimal(text){
  return (text ==='고양이'|| text ==='개'|| text ==='거북이');
}

console.log(isAnimal('개'));
console.log(isAnimal('노트북'));

이렇게 여러가지 값을 받아서 확인해야할 경우가 있다.

 

function isAnimal(text){
  const animals = ['고양이','개','거북이'];
  // 배열의 내장함수
  //배열 안에 포함되면 true가 나오고 아니면 false가 나옴
  return animals.includes(text);
}

console.log(isAnimal('개'));
console.log(isAnimal('노트북'));

그럴때는 배열을 사용하면 된다.

그리고 배열의 내장함수 includes를 사용해서 포함되면 true가 나오고 아니면 false가 나오게 한다.

const isAnimal = text =>  ['고양이','개','거북이'].includes(text);



console.log(isAnimal('개'));
console.log(isAnimal('노트북'));

이렇게 화살표 함수로도 사용할 수 있다.

화살표 함수는 아직도 너무 어렵다


function getSound(animal){
  if(animal ==='개')return '멍멍!';
  if(animal ==='고양이')return '야옹!';
  if(animal ==='참새')return '짹짹!';
  if(animal ==='비둘기')return '구구구!';
  return '...?';
}

console.log(getSound('개'));
console.log(getSound('인간'));

이렇게도 적을 수 있다. if문을 사용해서 

그런데 딱히 좋은 코드는 아니라고 한다

function getSound(animal){
  const sounds ={
    개: '멍멍!',
    고양이: '야옹!',
    참새: '짹짹!',
    비둘기: '구구!'
  };
  return sounds[animal] || '...?';
}

console.log(getSound('개'));
console.log(getSound('인간'));

이럴때는 객체를 사용해서 키: value 값으로 정해놓는다.

 

어떤 값을 넣을때마다 값이 달라지는 코드일때는 객체를 활용한다.

function makeSound(animal){
  const tasks ={
    개: ()=>{
      console.log('멍멍');
    },
    고양이: ()=>{
      console.log('야옹');
    },
    비둘기: ()=>{
      console.log('구구');
    }
  }
  const task = tasks[animal];
  if(!tasks[animal]){
    console.log('...?');
    return;
  }
  task();
}

makeSound('개');
makeSound('비둘기');
makeSound('인간');

또한 이렇게 값마다 다른 함수를 실행해야할때는 

이렇게 객체에서 함수를 각각 지정해주어도 된다.

728x90