Algorithm 7 : pipe

hyeongirlife·2021년 9월 14일
0

Algorithm

목록 보기
7/30

함수들을 입력받아 함수들이 입력된 차례대로 결합된 새로운 함수를 리턴해야 합니다.

예시

function square(num) {
  return num * num;
}
function add5(num) {
  return num + 5;
}
function mul3(num) {
  return num * 3;
}
function isOdd(num) {
  return num % 2 !== 0;
}
let output = pipe(add5, square);
console.log(output(4)); // --> 81
output = pipe(square, add5, mul3);
console.log(output(4)); // --> 63
output = pipe(square, mul3, add5, add5, isOdd);
console.log(output(4)); // --> false

생각

  • 처음에 아무 생각이 안남
  • 여러함수들이 들어오는 걸 정의해야 하므로 ...funcs(spread syntax)를 함수의 매개변수로 하자
  • for문으로 첫번째 함수가 실행되도록 하자.

풀이

function pipe(...funcs) {
  return function(num){
    let result = num;
    for(i=0;i<func.length;i++){
      result = result[i](result)
    }
   return result;
  }
}

깨달은 점

  • spread syntax를 사용할 수 있는 기회였다. 함수나 배열 등 같은 종류의 변수가 들어올 때는 자주 떠올려보자.
  • 기존의 매개변수를 새로운 변수에 재할당하는 것은 언제나 어색하다.
profile
머릿속에 있는 내용을 정리하기

0개의 댓글

관련 채용 정보