BFE.dev 해답 레코드 #1 implement curry()
4332 단어 JavaScript
다음은 저의 연습 기록입니다.
첫 번째 질문#1 implement curry()
먼저 샘플 코드에서 input/output 결정하기
const join = (a, b, c) => {
return `${a}_${b}_${c}`
}
const curriedJoin = curry(join)
curriedJoin(1, 2, 3) // '1_2_3'
curriedJoin(1)(2, 3) // '1_2_3'
curriedJoin(1, 2)(3) // '1_2_3'
위에서 보면 curry()
function을 되돌려주고 임의의 수량의 매개 변수를 전달할 수 있다.function 자체는 다음과 같다.1. 파라미터가 충분할 때join을 실행하고 결과를 되돌려줍니다
2. 매개 변수가 부족하면 새로운function을 반환하고 1 반복
2번이 중요해요.
curriedJoin(1,2)
되돌아오는 function은 전달된 매개 변수를 전달하기 전에 insert 1과 2가 필요합니다.이것은'Function.prototype.bind()
로 갈 수 있다.function curry(func) {
return function curried(...args) {
// 1. if enough args, call func
// 2. if not enough, bind the args and wait for new one
if (args.length >= func.length) {
return func.apply(this, args)
} else {
return curried.bind(this, ...args)
}
}
}
좋아, 통과했어!첫 번째 문제는 간단하니까 관심 있으면 같이 연습https://bfe.dev합시다.
Reference
이 문제에 관하여(BFE.dev 해답 레코드 #1 implement curry()), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/JSer/items/fbd16bf526ea0bc6adca텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)