[JavaScript] 고차함수

J·2023년 6월 16일
0

JavaScript

목록 보기
9/11

고차함수(HOF: Higher-Order Function)?

  • 다른 함수를 매개변수(parameter)로 사용하거나 함수를 출력으로 반환할 수 있는 함수.
  • 코드의 재사용성과 가독성을 향상시킴.
  • Array의 map, filter, reduce 등이 있음. 이러한 함수는 모두 함수를 매개변로 사용하여 배열의 각 요소에 적용하므로 데이터 변환, 필터링 등을 쉽게 수행할 수 있음.

map

  • 고차함수가 아닌 함수
    const arr1 = [1, 2, 3];
    const arr2 = [];
    
    for (let i = 0; i < arr1.length; i++) {
      arr2.push(arr1[i] * 2);
    }
    
    console.log(arr2); // Output: [2, 4, 6]
  • map 메서드를 사용
    const arr1 = [1, 2, 3];
    const arr2 = arr1.map((v) => v * 2);
    
    console.log(arr2); // Output: [2, 4, 6]

filter

  • 고차함수가 아닌 함수
    const persons = [
      { name: 'Kim', age: 20 },
      { name: 'Lee', age: 10 },
    ];
    
    const fullAge = [];
    
    for (let i = 0; i < persons.length; i++) {
      if (persons[i].age >= 18) {
        fullAge.push(persons[i]);
      }
    }
    
    console.log(fullAge); // Output: [ { name: 'Kim', age: 20 } ]
  • filter 메서드 사용
    const persons = [
      { name: 'Kim', age: 20 },
      { name: 'Lee', age: 10 },
    ];
    
    const fullAge = persons.filter((person) => person.age >= 18);
    
    console.log(fullAge); // Output: [ { name: 'Kim', age: 20 } ]

reduce

  • 고차함수가 아닌 함수
    const arr = [3, 1, 2];
    
    let sum = 0;
    
    for (let i = 0; i < arr.length; i++) {
      sum = sum + arr[i];
    }
    
    console.log(sum); // Output: 6
  • 고차함수로 작성
    const arr = [3, 1, 2];
    
    const sum = arr.reduce((acc, cur) => acc + cur);
    
    console.log(sum); // Output: 6

reference

profile
벨로그로 이사 중

0개의 댓글