Skip to content
solheee

210316 - 고차함수, 배열 메소드

TIL, JS1 min read

일급 객체(first-class citizen)란

  • 변수에 할당(assignment)할 수 있다.
  • 다른 함수의 인자(argument)로 전달될 수 있다.
  • 다른 함수의 결과로서 리턴될 수 있다.

함수 표현식(function expression)

함수를 변수에 저장하는 방법

1const square = function (num) {
2 return num * num;
3};

고차 함수

고차 함수란, 함수를 인자로 받거나, 함수를 리턴하는 함수를 말한다

이 때 인자로 전달되는 함수를 콜백 함수라고 한다



배열에 내장된 고차 함수

인자로 함수를 받는 배열 메소드들

filter

arr.filter(조건)

  • 조건에 부합하는 배열만 남음
1const isEven = function (num) {
2return num % 2 === 0;
3};
4
5let arr = [1, 2, 3, 4];
6let output = arr.filter(isEven);
7console.log(output); // ->> [2, 4]

map

배열 각 요소에 대하여 주어진 함수를 수행한 결과를 새로운 배열로 반환한다

1let arr = [1, 2, 3];
2
3let result = arr.map(function(e) {
4 return e * 2
5});
6
7console.log(result) //=> [2, 4, 6]
  • 배열의 각 요소가
  • 특정 논리(함수)에 의해
  • 다른 요소로 지정(map) 된다.

reduce

reduce함수는 배열이 주어졌을 때 배열안에 있는 모든 값을 사용하여 연산할 때 사용한다

1const numbers = [1, 2, 3, 4, 5];
2
3const sum = numbers.reduce((accumulator, current) => {
4console.log(accumulator, current);
5return accumulator + current;
6}, 0);
7console.log(sum);
8
9/*
100 1
111 2
123 3
136 4
1410 5
1515
16*/

arr.reduce(callback, initialValue)

콜백 함수 안 매개변수는 순서대로 네 가지 인수를 받는다

  • accumulator: 누적값
  • currentValue: 현재 요소
  • currentIndex: 요소의 인덱스 값, optional
  • array: reduce()를 호출한 배열

배열 안 요소를 모두 사용하는 연산이나, 요소끼리의 비교에 사용


todo

  • forEach, find, sort, some, every
  • MapReduce 학습하기 (MapReduce Model)
  • 자바스크립트에서 커링(currying)과 클로져(closure)의 차이 이해하기 (js closure vs curry)
  • 선언형 프로그래밍(declarative programming)과 절차형 프로그래밍(imperative programming)의 차이를 배열 메소드를 통해 이해하기 (js imperative vs declarative)
  • 함수의 조합(function composition)에 대해 학습하기 (javascript function composition)