재귀 함수는 함수 내부에서 자기 자신을 호출하는 함수이다.
const a = () => {
console.log('A')
a()
}
a()
이렇게 a함수가 무한 반복되기 때문에 문제가 된다.
let i = 0
const a = () => {
console.log('A')
i += 1
if (i < 4) {
a()
}
}
a()
// A
// A
// A
// A
그렇기 때문에 종료 조건을 걸어서 무한루프가 되지 않도록 해야한다.
const userA = { name: 'A', parent: null }
const userB = { name: 'B', parent: userA }
const userC = { name: 'C', parent: userB }
const userD = { name: 'D', parent: userC }
const getRootUser = user => {
if (user.parent) {
return getRootUser(user.parent)
}
return user
}
console.log(getRootUser(userB))
console.log(getRootUser(userD))
// {name: 'A', parent: null}
// {name: 'A', parent: null}
'패스트캠퍼스' 카테고리의 다른 글
javaScript-가져오기와 내보내기(모듈) (0) | 2023.08.28 |
---|---|
javaScript-JSON (0) | 2023.08.27 |
javaScript-콜백함수 (0) | 2023.06.16 |
javaScript-함수(즉시실행함수IIFE) (0) | 2023.05.15 |
javaScript-함수(화살표 함수) (0) | 2023.05.15 |