map을 좀 더 특수화한 함수를 만들어본다. 이말은 map이 수집하기 함수중 가장 추상화 수준이 높다는 것을 의미한다.
values
요소 값을 반환하는 함수
/*요소 값을 반환하는 함수*/
function values(list){
return map(list,d=>d);
}
console.log(
_.values(users),
_.values(users[0]),
)
each는 돌림직한 데이터도 순회하도록 만들었기 때문에 위와같이 재미있는 표현을 할 수 있다.
identity
자기자신을 기대로 반환하는 함수
/*자기자신을 그대로 반환하는 함수*/
function identity(arg){
return arg;
}
const testArr = [undefined, Infinity, null, NaN, 0, 1, 'true','false',true,false];
console.log(
_.filter(_.identity)(testArr)
)
다른 함수에 보조함수 성격이 강하다. filter()함수와 조합하면 true로 평가되는 값을 손쉽게 걸러낼 수 있다.
추가로 map에서 보조함수로 사용해도 된다.
/*요소 값을 반환하는 함수*/
function values(list){
return map(list,identity);
}
pluck
요소에서 특정 값만 추출하는 함수
/*요소에서 특정 값만 추출하는 함수 */
function pluck(list, key){
return map(list, obj => obj[key]);
}
console.log(
_.pluck(users, "age"),
_.pluck(users, "name"),
)
여기까지 예제를 보면, 모든 수집하기는 map을 통해서 이루어짐을 알 수 있다.
map은 수집하기 함수 중에서 가장 추상화 수준이 높다.
'개발 > 함수형 프로그래밍' 카테고리의 다른 글
09 - 컬렉션 중심 프로그래밍 - find(찾기) (0) | 2023.06.18 |
---|---|
08 - 컬렉션 중심 프로그래밍 - filter(거르기) (0) | 2023.06.18 |
06 - 다형성 높이기 (0) | 2023.06.16 |
05 - 파이프라인, pipe, go (1) | 2023.06.14 |
04 - map, filter에 curryr 적용, reduce (0) | 2023.06.12 |