[JS/Node] 내장 고차함수

Built-in higher order functions

내장 고차함수 ?

자바스크립트에는 기본적으로 내장된 고차함수들 중 배열 메소드들의 일부가 대표적인 고차함수에 해당한다.

배열filter 메소드는 모든 배열의 요소 중에서 특정 조건을 만족하는 요소를 걸러내는 메소드이다.

ex) number 타입을 요소로 갖는 배열에서 짝수만 걸러내거나, 18보다 작은 수만을 걸러내기, string 타입을 요소로 갖는 배열에서 길이가 10이하인 문자열 걸러내기, ‘korea’만 걸러내기.


filter 메소드를 이용해 특정 조건 만족하는 요소 걸러내기

1
2
3
let arr = [1,2,3,4];
let output = arr.filter(짝수); // 문법 오류지만 예시
console.log(output); // [2,4]

filter 메소드배열의 요소인자로 전달되는 콜백 함수에 다시 전달한다. 콜백 함수전달받은 배열의 요소를 받아 함수를 실행, 콜백 함수 내부의 조건에 따라 참(true) 또는 거짓(false)을 리턴해야 한다.



#심화

  • 자바 스크립트 배열 메소드고차 함수 학습 (js array method)
    • forEach / find / filter / map / reduce / sort / some / every
  • filter 메소드에 들어가는 콜백 함수는 truthy or falsy를 리턴할 수 있다. But, filter 메소드에 들어가는 콜백 함수의 경우 Deep equality를 통해 조건을 명확하게 밝히는 것을 권장 → 내부 조건에 따라 콜백 함수가 참 혹은 거짓을 리턴하도록 구현하기

map 활용

  • 배열의 각 요소
  • 특정 논리(함수)에 의해
  • 다른 요소로 지정(map) 된다.

⇒ 하나의 데이터를 다른 데이터로 맵핑(mapping)하기 위해 사용


filter 활용

  • 배열의 각 요소
  • 특정 논리(함수)에 따르면, 사실(boolean)일 때,
  • 따로 분류한다(filter).

⇒ 조건에 맞는 데이터만 분류(filtering)하기 위해 사용


reduce 활용

  • 배열의 각 요소
  • 특정 방법(함수)에 따라
  • 원하는 하나의 형태
  • 응축한다(reduce).

⇒ 여러 데이터를, 하나의 데이터응축(reduce)하기 위해 사용


Array.prototype.sort()

sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다.

1
arr.sort([compareFunction]);

# MDN Docs

  • 매개변수 compareFunction
    • 정렬 순서를 정의하는 함수.
    • 생략하면 배열은 각 요소의 문자열 변환에 따라 각 문자의 유니 코드 코드 포인트 값에 따라 정렬.
  • 반환 값
    • 정렬한 배열.
    • 원 배열이 정렬되는 것에 유의.