저는 JavaScript에 익숙하지 않으며 몇 가지 동작을 이해하지 못합니다. Eloquent JavaScript에있는 reduce 함수의 재귀 버전을 작성하고 싶습니다.자바 스크립트에서 재귀 감소
function rec_reduce(fn, base, list) {
if(list.length === 0) {
return base;
}
else {
rec_reduce(fn, fn(base, list[ 0 ]), list.slice(1));
}
}
print(rec_reduce(Math.min, 100, [ 5, 3, 7, 2, 6, 5 ]));
결과가 있었다 :
undefined
내가 넣어에 무슨 일이 일어나고 있는지 보려면 : 그건 내 코드의 함수의 첫 번째 라인으로
print(base);
및 결과였다
100
5
3
3
2
2
2
undefined
누구나 나를 설명 할 수 있습니까? 하이?
reduce_file.js :
function reduce(arr, func, initv){
if(arr.length) return reduce(arr.slice(1), func, func(initv, arr[0]))
else return initv
}
module.exports = reduce
한 다음로 사용하는 else
블록에서
THX 많은 행
! 나는 지금이 반환 물건을 잊어 버렸습니다. 그 이유는 주로 모든 재능이 필요했기 때문입니다. 나는 Scheme에서 프로토 타입을 만들었습니다. 반환 문장이 없습니다.) Thx again! – trzewiczek
@trzewiczek 조심 받아라. 당신의 프로필도 잘 어울립니다. –
죄송합니다 - 단지 경험이 없습니다 - 잊어 버렸습니다 !! – trzewiczek