5.1 μ¬κ·ν¨μλ₯Ό μ¬μ©νλ μ΄μ
μ°μ μ¬κ·λΌλκ²μ΄ 무μμΌκΉ? λͺ¨λ μλ°μ€ν¬λ¦½νΈμμλ 곡λΆνλ―μ΄ μ¬κ·λ μκΈ° μμ μ νΈμΆνλ ν¨μλ₯Ό μλ―Ένλ€. κ·Έλ λ€λ©΄ μ¬κ·λ₯Ό μ μμμΌ ν κΉ? μ½λλ₯Ό μμ±νλλ° λͺ¨λ κ³³μμ νμ©λ μ μκΈ° λλ¬Έμ΄λ€. μ°μ μ¬κ·λ₯Ό μ΄ν΄νκΈ° μν΄μλ 'μ€ν컨ν μ€νΈ μ€ν'μ μ΄ν΄ν νμκ° μλ€. μ€ν 컨ν μ€νΈλ μ΄λ―Έ λͺ¨λ μλ°μ€ν¬λ¦½νΈμμ 곡λΆνμ μ΄ μλ€.
23μ₯ μ€ν 컨ν μ€νΈ
μ€ν 컨ν μ€νΈλ μλ°μ€ν¬λ¦½νΈμ λμ μ리λ₯Ό λ΄κ³ μλ ν΅μ¬ κ°λ μ΄λ€. μ΄ κ°λ μ λͺ ννκ² μ΄ν΄νλ©΄ μλ°μ€ν¬λ¦½νΈκ° μ€μ½ν κΈ°λ°μΌλ‘ μλ³μμ μλ³μμ λ°μΈλ©λ κ°μ κ΄λ¦¬νλ λ°©μκ³Ό νΈ
pinetree93.tistory.com
κ°λ¨ν λ€μ μκ°ν΄ 보μλ©΄ μ€ν 컨ν μ€νΈ μ€νμ μλ°μ€ν¬λ¦½νΈ μμ§μ΄ μ½λλ₯Ό μ€νν¨μ μμ΄ μΌμ μ²λ¦¬ μμλ₯Ό κ΄λ¦¬νλ ν΄μ΄λΌκ³ μκ°νλ©΄ λ κ² κ°λ€.
μ°μ μ¬κ·λ λ κ°μ§ 쑰건μ κΌ μ§μΌμ μμ±ν΄μΌ νλ€. 첫 λ²μ§Έ 쑰건μ λ°λμ μ’ λ£ μ‘°κ±΄μ΄ μμ΄μΌ νλ€. κ·Έλ μ§ μμΌλ©΄ 무ν루νμ λΉ μ§κΈ° λλ¬Έμ΄λ€. λ λ²μ§Έ 쑰건μ μ¬κ· ν¨μ νΈμΆμ λ§€κ°λ³μμ λ³νκ° μμ΄μΌ νλ€. κ·Έλ μ§ μμΌλ©΄ λκ°μ ν¨μκ° λ¬΄ν λ°λ³΅λμ΄ λ¬΄ν 루νμ λΉ μ§κΈ° λλ¬Έμ΄λ€. κ·Έλ λ€λ©΄ μ΄μ μΉ΄μ΄νΈ λ€μ΄μ ν μ μλ ν¨μλ₯Ό λ§λ€μ΄ 보μ!
// λ°λ³΅λ¬ΈμΌλ‘ μμ±ν μΉ΄μ΄νΈ λ€μ΄
function countDown(num){
for(var i = num; i > 0; i--){
console.log(i);
}
}
// μ¬κ·ν¨μλ‘ μμ±ν μΉ΄μ΄νΈ λ€μ΄
function countDown(num){
if(num <= 0) {
return;
}
console.log(num);
num--;
countDown(num);
}
countDown(3)
μ΄λ²μλ μ¬κ·ν¨μλ₯Ό μ€λͺ ν λ κ°μ₯ λ§μ΄ λ±μ₯νλ ν©ν 리μΌμ μμ±ν΄ 보μ. ν©ν 리μΌμ 1λΆν° μ£Όμ΄μ§ μ μκΉμ§ λͺ¨λ κ³±νλκ²μ λ§νλ€.
//for λ°λ³΅λ¬ΈμΌλ‘ ν©ν λ¦¬μΌ κ΅¬νκΈ°
function factorialll(num){
let facNum = 1;
for(let i = num ; i > 0 ; i--){
facNum *= i;
}
return facNum;
}
console.log(factorialll(5));
//while λ°λ³΅λ¬ΈμΌλ‘ ν©ν λ¦¬μΌ κ΅¬νκΈ°
function fff(num){
if(num <= 0) return 1
let res = num;
while(--num) res *= num;
return res;
}
console.log(fff(5));
//μ¬κ·ν¨μλ‘ ν©ν λ¦¬μΌ κ΅¬νκΈ°
function factorial(n){
if(n <= 0)return 1;
return n * factorial(n-1);
}
console.log(factorial(3));
μμ κ°μ΄ μ¬κ·ν¨μλ λ°λ³΅λ¬Έμ ν΅ν΄μ ꡬνν μλ μμ§λ§, μ¬κ·ν¨μλ₯Ό μ¬μ©ν¨μΌλ‘μ λ§€μ° κ°κ²°νκ² μ½λλ₯Ό μμ±ν μ μλ€.
μ¬κ· ν¨μλ₯Ό μμ±ν λ μ£Όμν΄μΌ ν μ μ μ΄ν΄λ³΄μλ©΄ μ¬κ·ν¨μμμ μ’ λ£ μ‘°κ±΄μ΄ μκ±°λ μλͺ»λλ κ²½μ°λ μμμ μ€λͺ νλ―μ΄ λ¬΄ν루νμ λΉ μ Έ μ€νμ€λ²νλ‘μ°κ° λ°μν μ μλ€. κ·Έλ κΈ° λλ¬Έμ μ’ λ£μ‘°κ±΄μ λ°λμ λ§λ€μ΄μ€μΌ νκ³ , λ°νμ μκ±°λ μλͺ»λ λ°νμ ν΄λ μ€νμ€λ²νλ‘μ°κ° λ°μν μ μμΌλ, κΌ μ’ λ£ μ‘°κ±΄μ λ§λ€μ΄ μ€μΌ νλ€!!
5.2 ν¬νΌ λ©μλ μ¬κ·
ν¬νΌ λ©μλ μ¬κ·λ μΈλΆ ν¨μμ μ€μ²© ν¨μκ° μ¬κ·ν¨μμΈ κ²½μ°, ν¬νΌ λ©μλ μ¬κ·λΌκ³ λΆλ₯Έλ€. μ½κ² λ§ν΄, λ΄λΆν¨μ μ¦, μ€μ²©ν¨μλ₯Ό μ¬κ·ν¨μλ‘ λ§λλ κ²μ΄λ€. μλ₯Ό λ€μ΄ μ΄λ λ°°μ΄μμ λͺ¨λ νμκ°μ μμ§νλ κ²κ³Ό κ°μ μμ μ μννκ³ μλ€λ©΄ ν¬νΌ λ©μλ μ¬κ·λ₯Ό μ¬μ©νλκ² μμ£Ό μ’μ μ λ΅μ΄μ μ κ·Όλ²μ΄λ€. ν¬νΌ λ©μλ μ¬κ·λ μΌμ’ μ κ²°κ³Όλ₯Ό μ»΄νμΌν λ νν μ¬μ©λλ ν¨ν΄μ΄λ€. λ³΄ν΅ λ°°μ΄μμ λ§μ΄ μ¬μ©λλ€. νμ§λ§, λ°λ³΅λ¬Έλ³΄λ€ μ¬κ·λ₯Ό μ¬μ©ν΄μ ν΄κ²°νλκ²μ΄ μ‘°κΈ λ 볡μ‘ν λ°©λ²μΌ μ μλ€.
function oddValues(array){
let result = []
function helper(input){
if(input.length === 0) {
return;
}
if(input[0] % 2 !== 0){
result.push(input[0])
}
helper(input.slice(1))
}
helper(array)
return result;
}
console.log(oddValues([1,2,3,4,5,6])); // [1,3,5]
5.3 μμ μ¬κ·
μμ μ½λλ₯Ό μμ μ¬κ·λ₯Ό ν΅ν΄μ μμ±ν μλ μλ€. μ£Όμν΄μΌ ν μ μ resultλ°°μ΄μ ν¨μκ° νΈμΆ λ λλ§λ€ λΉ λ°°μ΄μ μμ±νλ€λ κ²μ μ£Όμν΄μΌ νλ€.
function oddValues(array){
let result = [];
if(array.length === 0) {
return result;
}
if(array[0] % 2 !== 0){
result.push(array[0]);
}
result = result.concat(oddValues(array.slice(1)));
return result;
}
oddValues([1,2,3,4,5])
//slice(1) << λ°°μ΄μ 1λ² μΈλ±μ€λ₯Ό μ μΈνκ³ λλ¨Έμ§ μΈλ±μ€λ₯Ό 볡μ¬ν΄μ λ°ν
//concat() << μΈμλ‘ μ λ¬λ κ°λ€μ μλ³Έ λ°°μ΄μ λ§μ§λ§ μμλ‘ μΆκ°ν μλ‘μ΄ λ°°μ΄μ λ°ν
//μ¦, result[1] -> result[3] -> result[5] -> λ°νκ°[5] -> λ°νκ°[3,5] -> λ°νκ°[1,3,5]