ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 21일차~(고차함수)
    코드스테이츠 2022. 11. 17. 21:54

    오늘은 새로운 세션의 시작과 함께 수업이 바쁘게 돌아갔다. 전보다 시간이 빡빡하게 돌아갔다. 문제푸는시간도 촉박했고 이론을 읽어보는 시간도 부족했다. 점심시간도 좀 쪼개서 문제도 풀고 이론도 봤더니 얼추 시간이 맞게 끝났다. 페어활동으로 코풀릿 문제 풀기가 있었는데 딱 실시간 세션 전에 다 풀수 있어서 다행이었다. 실시간 세션에서는 이론들을 한번에 정리해주셨고 어려워하는 문제들 위주로 해설을 해주셨다. 스터디원들도 어제 회고 이후로 조금더 편해진 것 같다. 오늘 하루도 굉장히 빨랐던것 같다. 내일도 시간 좀 빡세던데.... 내일만 하면 주말이니 내일도 화이팅 하고 이번 주말은 조금 편히 지내야할 것 같다. 물론 복습 몇 시간은 무조건이지!

     

    1. 일급 객체(first-class citizen)

    • 변수의 값으로 사용이 가능하다. (변수에 할당이 가능하다.)
    • 함수의 전달인자로 전달이 가능하다. 
    • 다른 함수의 리턴 값이 될 수 있다.(다른 함수의 결과로서 리턴 가능) 

    => 원시자료 데이터처럼 사용이 가능하다.

    • 함수 또한 일급 객체이다!

     

    2. 고차함수(higher order function)

    • 함수를 전달인자로 전달하는 함수 = 콜백함수(callback function)라고 한다.
    • 함수를 리턴하는 함수 = 커링함수 라고도 한다.
    // 함수를 전달인자로 전달받은 함수 (callback function를 전달인자로 전달받은 함수)
    function a(func, num) {
    	return func(num);
    }
    
    // 함수를 반환하는 함수
    function a(num1) {
    	return function b(num2) {
        		return num1 + num2;
        }
    }

     

     

    3. 내장되어 있는 고차함수

    1) filter

    • 배열의 요소 중 특정 조건에 만족하는 요소만을 반환한다. (조건에 true일 경우에만)
    • 원하는 요소를 골라낼때 쓰인다.
    • 반환된 배열의 길이는 원래 배열의 길이보다 같거나 짧다.
    let arr = [1, 2, 3, 4, 5];
    
    arr.filter(function(el) {
    	return el % 2 === 1; // 홀수일 경우에만 true
    }
    // 조건에 true인 홀수값 [1, 3, 5]를 가진 새로운 배열을 만듦.

     

    2) map

    • 배열의 모든 요소가 함수의 영향을 받아 변형된 형태로 반환.
    • 모든 요소에 함수를 적용시킬때 쓰인다.
    • 반환된 배열의 길이는 원래의 배열의 길이와 같다.
    let arr = [1, 2, 3, 4, 5];
    
    arr.map(function(el) {
    	return el * 2;
    }
    
    // 모든 배열의 값에 곱하기 2를 해준 새로운 배열이 반환된다.
    // [2, 4, 6, 8, 10]

     

    3) reduce

    • 배열의 모든 요소가 함수의 영향을 받는데 함수가 반복될 때 반환 값이 acc에 할당되며 최종 반환 값이 반환된다.
    • 모든 요소를 어떤 조건에 의해 응축시킬 때 쓰인다.
    • 초기값을 설정해줄 수 있다.
    • 반환된 배열의 길이는 원래의 배열의 길이보다 작거나 같다.
    let arr = [1, 2, 3, 4, 5]
    
    arr.reduce(function(acc, cur) {
    	return acc + cur;
    }, 0)
    
    // 모든 요소의 합이 반환된다.
    // 0이 초기값
    // 15
    
    // 초기값이 10일 경우
    let arr = [1, 2, 3, 4, 5]
    
    arr.reduce(function(acc, cur) {
    	return acc + cur;
    }, 10)
    
    // 초기값과 모든 요소의 합이 반환된다.
    // 10이 초기값
    // 25
Designed by Tistory.