[무료] 자바스크립트로 알아보는 함수형 프로그래밍 (ES5) - 인프런 | 강의

마플(http://www.marpple.com)의 CTO 유인동님이 알려주는 함수형 프로그래밍에 대한 강좌 입니다. 함수형 프로그래밍으로 라이브러리를 직접 만들어가며 함수형 프로그래밍의 패러다임과 코딩의 즐거

www.inflearn.com

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은 수집하기 함수 중에서 가장 추상화 수준이 높다.

function.html
0.01MB

+ Recent posts