DAY 17. 고차함수
고차함수
함수를 리턴하는 함수
함수를 인자로 받을 수 있는 함수
콜백함수
인자로 받아지는(들어가는,불러진) 함수
실행이 된 함수와 실행이 안된 함수의 차이
함수 자체와 함수의 결괏값
()
이걸로 함수가 실행되었는지 안되었는지 확인할 수 있다.
function foo () {
// 실행이 안 된 함수를 반환할 수 있다.
return function () {
return 'a';
}
}
'a'
를 얻으려면 foo()()
하면 된다.
그냥 foo를 콘솔에 넣으면 실행안된 안에있는 함수 자체가 나온다
arr.filter
조건이 안맞으면 안나옴
전달받은 콜백함수에서 true만 모아서 새로운 array 리턴
filter 메소드의 사용법은 매개변수의 값이 항상 boolean이어야한다.
그러한 메소드들은 보통 배열을 0부터 끝까지 한번씩 훑음: 훑으면서 취하는 각각의 액션 특징이 있음 => 걸러야 되는 액션이 있어요. => 이 걸러야 되는 게 생각보다 까다롭다면? 문자열이나 숫자 배열 이런 걸로 걸러지지 않는다면?: 자유도를 높이기 위해서 콜백 함수를 사용하는 거.
콜백 함수는 아주 고맙게도 우리가 작성할 수 있어요. => 어떠한 내장 메서드를 쓸 때 조건을 우리가 직접 정할 수 있음.
arr.find
find() 메서드는 주어진 판별 함수를 만족하는 첫 번째 요소의 값을 반환합니다. 그런 요소가 없다면 undefined를 반환합니다
arr.reduce
누적
//acc = 0 , 1 - > 1 acc
//acc = 1 , 2 - > 3 acc
//acc = 3 , 3 -> 6 acc
//acc = 6 , 4 -> 10 acc
[1,2,3,4].reduce((acc,cur) => {
//한번 순회할 때마다 acc를 업데이트해준다
//그게 reduce의 궁극적인 목표이다.
//결과값으로 출력해줄거니까
//return acc+ cur;
acc = acc + cur;
return acc
},0) //초기값은 optional한 값이다.
//초기값을 사용하지 않으면 acc는 0번째 인덱스가 된다.
//acc가 결국엔 출력값이 된다
//10이 나옴
```
리듀스를 사용해서 배열 -> 문자열로 하고싶을 땐 초기값은 문자열로 두면 편함
배열 -> 숫자면 초기값을 숫자
배열 -> 객체면 초기값을 객체
acc 누적 -> 결국엔 반환값 -> 자료형을 결정해놓고 리듀스를 쓰면 된다.
map,filter는 보통 reduce로 풀 수 있다.
Author And Source
이 문제에 관하여(DAY 17. 고차함수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@syc765/DAY-18.-고차함수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)