- 자바스크립트에서 일급객체는 변수에 할당이 가능하며 다른 함수의 인자로 전달이 가능하고, 다른 함수의 결과로 리턴이 가능하다.
- 고차함수는 함수를 인자로 받을 수 있고(콜백함수), 함수의 형태로 리턴할 수 있는(커리함수) 함수를 의미한다.
- 자바스크립트의 내장 고차함수로는 map, filter, reduce 등이 있다.
배열을 또 다른 배열로 만들어 준다.
인자로 받은 함수를 통해서 배열의 원소 값을 변환한다.
입력받은 배열의 크기와 같은 크기의 배열을 반환한다.const list = [1, 2, 3, 4, 5]; map_list = list.map(num => num * 2); console.log(map_list); // [ 2, 4, 6, 8, 10 ]
인자로 받은 함수가 모든 배열(or 객체)의 원소를 검사하여 true를 반환하는 배열의 원소만으로 이루어진 배열을 반환한다.
const list = [1, 2, 3, 4, 5, 6, 7, 8];
filter_list = list.filter(num => num > 5);
console.log(filter_list);
// [ 6, 7, 8 ]
배열, 객체를 하나의 값으로 만든다.
초기값을 정하지 않으면, 배열의 첫번째 요소가 초기값이 된다.const list = [1, 2, 3, 4, 5, 6, 7, 8]; reduce_list = list.reduce((acc, cur) => acc < cur ? cur : acc); console.log(reduce_list); // 8
const list = [1, 2, [1, 2, [1, 2, [1, 2]]]];
console.log(list.flat(2));
// [ 1, 2, 1, 2, 1, 2, [ 1, 2 ] ]
🍘 메서드 체이닝
const list = [1, 2, 3, 4, 5, 6, 7, 8];
result = list.map(num => num**2)
.filter(num => num % 2 == 0)
.reduce((acc, cur) => acc + cur);
console.log(result);
// 1, 4, 9, 16, 25, 36, 49, 64 -> 4, 16, 36, 64 -> 120