배열 내의 모든 요소 각각에 대하여 주어진 함수를 적용시킨 결과를 모아 새로운 배열을 반환
map은 이렇게 하나의 데이터를 다른 데이터로 맵핑(mapping) 할 때 사용한다
function DoubleElements(arr) {
return arr.map(function(n) {
return n * 2;
});
} // [1, 2] 를 입력받을 시 [2, 4]를 리턴
주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환
filter는 이렇게 조건에 맞는 데이터만 분류(filtering) 할 때 사용한다
function keep(arr, keeper) {
return arr.filter(function(n){
if(n === keeper) {
return true;
}
})
} // keeper와 일치하는 요소만 return
// keep([1, 2, 3, 2, 1], 2) 일때 [2, 2]를 리턴
배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환
reduce는 이렇게 여러 데이터를 하나의 데이터로 응축(reduce)할 때 사용한다
reduce()는 빈 요소를 제외하고 배열 내에 존재하는 각 요소에 대해 callback 함수를 한 번씩 실행하는데, 콜백 함수는 다음의 네 인수를 받는다
누산기accumulator (acc) : 콜백의 반환값을 누적한다 콜백의 첫 번쨰 호출, initialValue이 존재할 경우 initialValue의 값이 된다
현재 값 (cur) : 처리할 현재 요소
현재 인덱스 (idx) : optional, 처리한 현재 요소의 index
원본 배열 (array) : optional, reduce()를 호출한 배열
리듀서 함수의 반환 값은 누산기에 할당되고, 누산기는 순회 중 유지되므로 결국 최종 결과는 하나의 값이 된다
callback : 배열의 각 요소에 대해 실행할 함수. 다음 네 가지 인수를 받습니다
function makeSum(arr) {
return arr.reduce(function(acc,cur){
return acc + cur;
})
} // arr의 모든값을 더해서 return 한다
//[2, 3, 4] 일 경우 7이 리턴