map
배열의 각 요소들이 특정함수에 의해서 다른요소로 mapping 되는 것.
e.g.
let arr = [1, 2, 3];
let result = arr.map(function(num){
return num*2;
});
result = [2, 4, 6]이 되게 된다.
이는
function multiple(num){
return num*2
}
let result = arr.map(multiple);한것과 같은 결과를 불러온다.
filter
배열의 각 요소들을 boolean값을 가지는 함수를 이용해 말그대로 filter하는 것.
ex) let arr = [1, 2, 3, 4, 5, 6]
return arr.filter(el =>el%2 === 0)을 하게 된다면 2의 배수들만을가지는 배열을 리턴하게 되는 것이다.
reduce
대망의 reduce함수다. 단순한 이용은 크게 어려울 것없지만, 활용에 있어 어려움을 많이 겪었다.
기본적인 사용법은 다음과 같다.
let arr = [1, 2, 3, 4]
let result = arr.reduce((a, c) => a +c , 0)를 하게 되면 arr배열 전체를 더한 10이라는 값이 result가 된다.
이 원리는 다음과 같다.
위의 식에서 a는 accumulated, c는 current를 의미한다. 단어만으로도 느낌이 오겠지만, a는 뒤의 함수를 적용한 뒤의 축적된 값. c는 현재값을 의미한다. 그리고 마지막 0은 a의 초기값을 의미한다.
즉, 위의 함수는 0+1=a=1, 1+2=3=a, 3+3=6=a, 6+4=a라는 과정을 거쳐, 10이라는 값을 가지게 되는 것이다.
이 reduce 함수의 활용에 관한 부분은 다음 게시물에서 정리하기로 하자.