Recursion
1. ์ฌ๊ทํจ์๋?
์๊ธฐ ์์ ์ ํธ์ถํ๋ ํจ์
์ฌ๊ท๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ํฉํ ๋
์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ๋น์ทํ ๊ตฌ์กฐ์ ๋ ์์ ๋ฌธ์ ๋ก ๋๋ ์ ์๋ ๊ฒฝ์ฐ
์ค์ฒฉ๋ ๋ฐ๋ณต๋ฌธ์ด ๋ง๊ฑฐ๋ ๋ฐ๋ณต๋ฌธ์ ์ค์ฒฉ ํ์๋ฅผ ์์ธกํ๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ
์์ ์ฝ๋
// ๋น ๋ฐฐ์ด์ ๋ฐ์์ ๋ 0์ ๋ฆฌํดํ๋ ์กฐ๊ฑด๋ฌธ // ๊ฐ์ฅ ์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ฝ๋ & ์ฌ๊ท๋ฅผ ๋ฉ์ถ๋ ์ฝ๋ function arrSum(arr) { if(arr.length === 0) { return 0 } // ๋ฐฐ์ด์ ์ฒซ ์์ + ๋๋จธ์ง ์์๊ฐ ๋ด๊ธด ๋ฐฐ์ด์ ๋ฐ๋ arrSum ํจ์ // ์ฌ๊ท๋ฅผ ํตํด ๋ฌธ์ ๋ฅผ ์๊ฒ ์ชผ๊ฐ ๋๊ฐ๋ ์ฝ๋ // arrSum([5]) === 5 + arrSum([]) === 5 + 0 === 5; // arrSum([4, 5]) === 4 + arrSum([5]) === 4 + 5 === 9; return arr.shift() + arrSum(arr) }
2. ์ฌ๊ท์ ์ฌ๊ณ
1. ์ฌ๊ท ํจ์์ ์
๋ ฅ๊ฐ๊ณผ ์ถ๋ ฅ๊ฐ ์ ์ํ๊ธฐ
๊ฐ์ฅ ์ถ์์ or ๊ฐ์ฅ ๋จ์ํ๊ฒ ์ ์ํ๊ธฐ
2. ๋ฌธ์ ๋ฅผ ์ชผ๊ฐ๊ณ ๊ฒฝ์ฐ์ ์๋ฅผ ๋๋๊ธฐ
์ ๋ ฅ๊ฐ์ด๋ ๋ฌธ์ ์ ์์/ํฌ๊ธฐ์ ๋ฐ๋ผ ์ชผ๊ฐ๊ธฐ
3. ๋จ์ํ ๋ฌธ์ ํด๊ฒฐํ๊ธฐ
๊ฐ์ฅ ์ฌ์ด ๋ฌธ์ ๋ถํฐ ํด๊ฒฐ โ ์ฌ๊ท์ ๊ธฐ์ด: ์ด๋ ์ถํ ์ฌ๊ท์ ํ์ถ ์กฐ๊ฑด์ ๊ตฌ์ฑ
ํ์ถ ์กฐ๊ฑด์ด ์๋ค๋ฉด ์ฌ๊ท ํจ์๋ ์์ ์ ๋์์ด ํธ์ถํ๋ฏ๋ก ๋ฌธ์ ๋ฅผ ์ต๋ํ ์๊ฒ ์ชผ๊ฐ๊ธฐ
4. ๋ณต์กํ ๋ฌธ์ ํด๊ฒฐํ๊ธฐ
๋จ์์๋ ๋ณต์กํ ๋ฌธ์ ํด๊ฒฐ
5. ์ฝ๋ ๊ตฌํํ๊ธฐ
function recursive (input1, input2, ...) {
// base case: ๋ฌธ์ ๋ฅผ ๋์ด์ ์ชผ๊ฐค ์ ์๋ ๊ฒฝ์ฐ
if (๋ฌธ์ ๋ฅผ ๋์ด์ ์ชผ๊ฐค ์ ์์ ๊ฒฝ์ฐ) {
return ๋จ์ํ ๋ฌธ์ ์ ํด๋ต;
}
// recursive case: ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ
return ๋ ์์ ๋ฌธ์ ๋ก ์๋กญ๊ฒ ์ ์๋ ๋ฌธ์
}
3.JSON.stringigy
1. JSON์ ํ์ ๋ฐฐ๊ฒฝ
JSON์ JavaScript Object Notation๋ก์, ์๋ก ๋ค๋ฅธ ํ๋ก๊ทธ๋จ ์ฌ์ด์์ ๋ฐ์ดํฐ ๊ตํ์ ์ํด ๋ง๋ค์ด์ง ๊ฐ์ฒด ํํ์ ํฌ๋งท
2. ๋ฉ์๋
JSON.stringify
: ๊ฐ์ฒด โ JSON๋ก ๋ณํํ๋ ๋ฉ์๋
JSON.stringify
: ๊ฐ์ฒด โ JSON๋ก ๋ณํํ๋ ๋ฉ์๋// message ๊ฐ์ฒด๋ฅผ JSON์ผ๋ก ๋ณํํ๋ ๋ฉ์๋ JSON.stringify
let transferableMessage = JSON.stringify(message)
console.log(transferableMessage)
// `{"sender":"Ella","receiver":"Chloe","message":"Hi, Chloe.","createdAt":"2023-04-12 10:10:10"}`
console.log(typeof(transferableMessage)) // `string`
JSON.parse
: JSON โ ๊ฐ์ฒด๋ก ๋ณํํ๋ ๋ฉ์๋
JSON.parse
: JSON โ ๊ฐ์ฒด๋ก ๋ณํํ๋ ๋ฉ์๋// ์ง๋ ฌํ๋ JSON์ ๋ฉ์๋ JSON.parse๋ฅผ ์ ์ฉํด ๋ค์ ๊ฐ์ฒด๋ก ๋ณํ: ์ญ์ง๋ ฌํ
let packet = `{"sender":"Ella","receiver":"Chloe","message":"Hi, Chloe.","createdAt":"2023-04-12 10:10:10"}`
let obj = JSON.parse(packet)
console.log(obj)
/*
* {
* sender: "Ella",
* receiver: "Chloe",
* message: "Hi, Chloe.",
* createdAt: "2023-04-12 10:10:10"
* }
*/
console.log(typeof(obj)) // `object`
3. JSON ๊ธฐ๋ณธ ๊ท์น

Last updated