Javascript
17. 내장고차함수
연쥬개발쟈
2020. 9. 26. 14:56
내장고차함수 란?
자바스크립트에는 기본적으로 내장되어 있는 고차 함수들이 있습니다.
바로 배열 메소드들중 일부가 고차함수에 해당합니다.
1. filter
이 메소드는 이름 그래도 요소들을 걸러내는 것이 목적이다.
return 값이 true인 요소들만 모아서 새로운 배열을 만든다. return을 생략하면 undefined이므로 false를 반환한다.
만약 만족하는 요소가 하나도 없다면 빈배열을 반환한다.
let arr = [1, 2, 3, 4];
let output = arr.filter(짝수);
console.log(output); // ->> [2, 4]
let arr = [1, 5, 9, 4];
let output = arr.filter(짝수);
console.log(output); // ->> []
2. map
요소들을 일괄적으로 변경 할때 효과적
처음들어온 요소 만큼 반환 될때도 그 요소 수 만큼 그대로 반환된다.
// 문자열 배열에서 문자열 길이만 획득하기
var arr = ['hi', 'hello', 'byebye', 'seeyouletter'];
var arr2 = arr.map(function (str) {
return str.length;
});
console.log(arr2); // [2, 5, 6, 12]
3. reduce
map, filter, find로 구현할 수 있는 문제라면 reduce로도 구현할 수 있다.
순회하며 요소들을 끼리 연산이 필요할때 쓰이면 효과적이다.
인자값을 2개 넣어 준다.
// 배열 요소의 합 계산하기
var arr = [10, 12, 18, 5, 5];
var sum = arr.reduce(function (pre, value) {
return pre + value;
});
console.log(sum); // 50
4. find
filter와 비슷하지만 다른점은 반환을 단 한개의 요소만 한다는점이다.
다시말해 순회를 하다가 true인 요소가 나오면 거기서 끝내고 처음 나온 true요소 하나만 반환한다.
만약 반환 할 것이 하나도 없으면 undefined반환한다.
// 정수 배열에서 5의 배수인 정수만 모으기
var arr = [4, 15, 377, 395, 400, 1024, 3000];
var arr2 = arr.filter(function (n) {
return n % 5 == 0;
});
console.log(arr2); // [15]