비행기의 일등석처럼 자바스크립트에도 일등석과 같이 특별한 대우를 받는 일급 객체가 있다.
함수가 대표적인 일급 객체
이다.
함수를 전달인자로 받을 수 있는 함수
전달인자로
전달되는 함수를 콜백 함수
라고 한다.커링 함수
라고도 함)
filter
,map
,reduce
,forEach
,sort
,every
등이 있다.
filter
배열의 각 요소(el
)가 조건(함수)에 의해 true
인 요소만 가지는 새로운 배열을 리턴한다.
let arr = [ 1, 2, 3 ];
let odd = arr.filter(function(el){
return el%2 === 1 // 홀수인 요소만 리턴
});
console.log(odd) // [1, 3] // 홀수인 요소만 가지는 새로운 배열
consoel.log(arr) // [1, 2, 3] // 기존의 배열은 변하지 않음
map
배열의 각 요소(el
)에 콜백함수를 적용시킨 요소를 가지는 새로운 배열을 리턴
let arr = [ 1, 2, 3 ];
// 각 요소에 곱하기2를 해주는 콜백함수
let result = arr.map(function(el){
return el * 2
});
console.log(result) // [2, 4, 6]
consoel.log(arr) // [1, 2, 3] // 기존의 배열은 변하지 않음
reduce
배열의 각 요소(cur
)를 콜백함수의 조건에 따라 누적(acc
)시킨 값을 리턴
let arr = [1, 2, 3, 4, 5]
let result = arr.reduce( (acc, cur) => {
return acc + cur
})
console.log(result) // 15
초기값 ❌
배열의 첫번째 요소가 첫 누적값(acc)이 되고 두번째 값이 현재값(cur)이 됨
초기값 ⭕️
첫 누적값(acc)으로 초기값을 갖고, 배열의 첫번째 요소가 현재값(cur)이 됨
forEach
콜백 함수를 주어진 배열의 요소에 대해 각각 실행
const itmes = ['item1', 'item2', 'item3'];
const copy = [];
items.forEach(function(el){
copy.push(el);
})
console.log(copy) // ['item1', 'item2', 'item3']