일급 객체
고차함수
- 함수를 인자(콜백 함수)로 받을 수 있고 함수를 값으로 리턴할 수 있는 함수
filter
- 배열의 각 요소가 특정 함수에 따르면 사실일 때, 따로 분류한다.
- filter 메서드에 들어가는 콜백함수는 truthy, fasly를 리턴할 수 있다.
- 기존 배열을 수정하지 않는다.
- 원하는 필터링에 따라서 결과가 달라진다.
const cartoons = [
{
id : 1,
title : '만화책',
subtitle : '만화책의 부제목',
createdAt : '2003-04-09',
},
... // 생략
]
// 2003년에 발행된거 찾기
const isCreatedAt2003 = function(cartoon) {
const fullyear = new Date(cartoon.createdAt).getFullYear();
return fullyear === 2003;
}
const filteredCartoon = cartoons.filter(isCreatedAt2003);
map
- 배열의 각 요소가 특정 함수에 의해 다른 요소로 지정(map)합니다. (매핑한다.)
- 기존 배열을 수정하지 않는다.
- 원하는 행동에 따라서 결과가 달라진다.
const cartoons = [
{
id : 1,
title : '만화책',
subtitle : '만화책의 부제목',
},
... // 생략
]
const findSubtitles = function(cartoon) {
return cartoon.subtitle;
}
const subtitles = cartoons.map(findSubtitles);
reduce
- 배열의 각 요소를 특정 함수에 따라 원하는 형태로 응축(reduction)할 수 있다.
- 여러 데이터를 하나로 응축할 때 사용.
const cartoons = [
{
id : 1,
title : '만화책',
subtitle : '만화책의 부제목',
averageScore : 9.1,
},
... // 생략
]
// 단행본의 스코어의 평점
const scoreReducer = funtion(sum, cartoon) {
return sum + cartoon.averageScore;
}
let initialValue = 0;
const cartoonAverage = cartoons.reduce(scoreReducer, initialValue)/cartoons.length;