4.7 재귀(Recursive) 함수

지구·2023년 7월 19일

JavaScript

목록 보기
22/30

정의

함수가 자신을 다시 호출하는 함수로 재귀함수는 종료 조건이 없다면 무한 반복하기 때문에, 종료 조건이 무조건 있어야한다.

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(userA)) // { name: 'A', parent: null }
console.log(getRootUser(userB)) // { name: 'A', parent: null }
console.log(getRootUser(userC)) // { name: 'A', parent: null }
console.log(getRootUser(userD)) // { name: 'A', parent: null }

계속 재귀함수를 돌아서 결국 userA의 값을 호출하게된다.

profile
프론트엔트 개발자입니다 🧑‍💻

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

글 잘 봤습니다, 감사합니다.

답글 달기