한 차원 높게 생각하기

김경태·2021년 2월 21일
0

고차함수

고차함수란?

고차 함수(higher order function)는 함수를 인자(argument)로 받거나 함수를 리턴하는 함수를 말합니다. 이 때 다른 함수(caller)의 인자(argument)로 전달되는 함수를 콜백 함수(callback function)라고 합니다.

대표적인 고차함수

  • map : 배열안에 원소를 변환할때 사용
let arr = [1, 2, 3];

let result = arr.map(function(ele) {
      return ele*2;
})

console.log(result);
// -> [2, 4, 6]
// ele변수에는 arr배열의 각요소들이 들어간다.
// tip - map은 값이 요소 전체가 나올경우 사용
  • filter : 특정 조건을 만족하는 원소들을 찾아서 그 원소들로 새로운 배열을 만드는것
let arr = [1, 2, 3];

let result = arr.filter(function(ele) { 
      return ele % 2 !== 0;
})

console.log(result);
// -> [1,3]
// ele변수에는 arr배열의 각요소들이 들어간다.
// tip - filter는 값이 조건에 해당하는값만 나올경우 사용
  • reduce : 배열안에 있는 모든값을 사용하여 연산하여야할때 사용
let arr = [1, 2, 3];

let result = arr.reduce(function(acc, cur, idx) { 
       acc + cur;
       return acc;
},0)
console.log(result)
// -> [6]
// -> 0 = 초기값 , acc = 누적된값 , cur = 요소 
// 처음에 초기값 0 이 acc로 가서 0+1을 하고 그 누적값인 1이 다시 acc로가서 1+2 로 쭉 반복이되어 [6]이라는 결과가 나온다
// tip - 값이 요소의 계산값을 나타내는 경우

그 밖의 고차함수

대표적인 고차함수 외에도 수많은 고차함수가 존재한다 그 중에 알아두면 좋을 고차함수를 알아보자

  • splice : 특정 항목을 제거할때 사용
const numbers = [10, 20, 30, 40];
const spliced = numbers.splice(0, 1); // 0번째 인덱스부터 한개를 제거한다.
console.log(numbers);
console.log(spliced);
// -> [20, 30, 40]
// -> [10]
  • slice : 배열을 잘라낼때 사용
const numbers = [10, 20, 30, 40];
const sliced = numbers.slice(0, 2); // 0번째 인덱스부터 2개를 잘라낸다.
console.log(sliced);
console.log(numbers); 
// -> [10, 20]
// -> [10, 20, 30, 40]
// splice는 기존의 배열이 변하지만 slice는 기존의 배열이 변하지 않는다.
  • concat : 두 배열을 하나로 합칠때 사용
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const concated = arr1.concat(arr2);
console.log(concated); 
// -> [1, 2, 3, 4, 5, 6]
  • forEah : 배열안에 요소를 한번씩 실행할때
const superheroes = ["아이언맨", "캡틴 아메리카", "토르", "닥터 스트레인지"];

superheroes.forEach(function(ele) {
  console.log(ele);
})
// -> 아이언맨, 캡틴 아메리카, 토르, 닥터 스트레인지
profile
비전공자로 시작한 개발자 지망생입니다!

0개의 댓글