TIL

dev-whol·2021년 4월 4일
0

✍🏻 고차 함수

  • 고차 함수는 인자로 전달 가능하다.
  • 고차 함수는 함수의 결과로 리턴 받을 수 있다.
  • 고차 함수와 콜백 함수는 각각 다르다.
    ex)
    고차 함수 : 함수를 인자로 받거나 함수를 리턴하는 함수
    콜백 함수 : 함수의 인자로 전달되는 함수

고차 함수예시)

  • 두 함수를 인자로 받아 결합된 새로운 함수를 리턴. func2, func1 차례로 적용한다.
    function sum(func1,func2){ // 인자로 함수 2개를 받는다.
      const sumFn = function(num){ //num을 인자로 받는 익명 함수 실행
      const resultFn2 = func2(num); // resultFn2에 인자 num이 들어간 값을 담는다.
      const resultFn1 = func1(resultFn2); // resultFn1에 resultFn2의 리턴 값을 받아 실행된 값을 담는다.
        return resultFn1; //모두 실행된 값을 sunFn에 리턴한다.
     }
    return sumFn;// 변수에 담긴 데이터를 리턴한다.
    }

  • 문자열을 요소로 갖는 배열을 입력받아 길이가 10이상, 홀수인 요소만을 갖는 배열을 리턴
    function words(words){ // 문자열 요소를 갖는 배열 인자
      const result = words.filter(function(word){ // result에 filter 함수를 호출 
        return word.length >= 10 && word.length % 2 !== 0 // 조건에 맞게 필터링한 값 리턴
      })
      return result;// 필터링 된 값을 담은 변수 리턴
    }

  • 숫자를 요소로 갖는 배열을 입력받아 가장 작은 수를 구하세요.
function sum(arr){ // 숫자를 요소로 갖는 배열
return arr.redece(function(acc,cur){ // 초기누적값은 arr의 첫번째 요소, 현재비교값은 2번째 요소
  if(acc < cur){ // 누적값과 현재값을 비교
    return acc;  // 누적값이 작으면 acc를 리턴
  }else{
    return cur;  // 누적값이 더 크면 cur를 리턴
  }
});
}

0개의 댓글