문제 :
tryNumRange 함수를 작성하라.
이 함수는 숫자와 함수를 파라미터로 하고,
파라미터 함수는 1부터 입력된 파라미터 숫자까지 호출된다.
만약에 파라미터 함수의 호출 도중 true값이 나오면 tryNumRange 함수는 true를 리턴하고
파라미터 함수의 모든 리턴이 false라면 tryNumRange 함수는 false를 리턴해라
아래 서술할 첫번째 코드와 두번째 코드는 사실상 같다.
첫번째 코드
const tryNumRange = (num, f, i = 1) => {
if (num < i) {
return false
}
if (f(i) === true) {
return true
}
if (f(i) === false) {
return tryNumRange(num, f, i + 1)
}
}
let res = tryNumRange(10, e => {
return e > 10
})
두번째 코드
const tryNumRange = (num, f, i = 1) => {
if (num < i) {
return false
}
if (f(i) === true) {
return true
}
return tryNumRange(num, f, i + 1)
}
let res = tryNumRange(19, e => {
return e > 10
})
console.log(res);
if (f(i) === false) 조건은 사실상 필요가 없는 조건이 된다.
위의 조건에서 true일 때 return이 되는 것을 알 수 있다.
- return이 되면 함수의 return 아랫방향에 서술된 코드는 무시된다.
- boolean값은 true 또는 false이다. (false가 아니라면 true가 아니다.)
- 조건식이 true라면 아래 나온 값은 false가 될 것이다.
그렇다면 위의 함수에서는 조건식 없이 리턴을 호출해도 된다.
'Javascript' 카테고리의 다른 글
입력한 숫자 만큼 문자열 뒤쪽 출력하기 (0) | 2022.08.02 |
---|---|
(자바스크립트) 문자열 (0) | 2022.08.02 |
(자바스크립트) 클로저, 함수 연계 연습 (0) | 2022.08.01 |
(자바스크립트) 클로저(Closure) (0) | 2022.07.31 |
innerHTML 연습 1 (0) | 2022.07.26 |