1.μ μ°¨ν νλ‘κ·Έλλ° (imperative programming)
μνλ μμ μ βμ΄λ»κ² ν κ² μΈκ°β
μ μ°¨ν νλ‘κ·Έλλ°μ μ΄λ»κ² μ€μ μ λκ³ νλ‘κ·Έλλ°μ ν κ²μΈμ§μ λν΄ μ€μ μ λλ κ²μ λ§νλ€.
μ¦, μ½λμ 무μμ μ΄λ»κ² νκ³ μΆμμ§ ννν΄μΌ νλ€! μ½λλ₯Ό 보면μ μ΄ν΄ν΄λ³΄μ!
// λ°°μ΄μ νλΌλ―Έν°λ‘ λ°κ³ κ° μμλ€μ κ°μ 2λ₯Ό κ³±νλ ν¨μ
function getDoubledElements(arr) {
let resultArr = [];
for (let i = 0; i < arr.length; i++) {
resultArr.push(arr[i] * 2);
}
return resultArr;
}
console.log([1, 2, 3]); // [2, 4, 6];
μ μ½λμ²λΌ μ μ°¨ν νλ‘κ·Έλλ° λ°©μμ λ°λ³΅λ¬Έμ μ΄μ©ν΄ λͺ¨λ μμμ ν λ²μ© μ κ·Όμ ν΄μ
κ²°κ³Όκ°μ λ°ννλ λ°©λ²μ ꡬννκ³ μλ€.
2.μ μΈν νλ‘κ·Έλλ° (declarative programming)
λ‘μ§μ΄ β무μμΈμ§λ₯Όβ ννμμΌλ‘ λνλΈλ€
λ΄λΆμ μΌλ‘ μ½λλ₯Ό μ΄λ»κ² ꡬννλμ§, λ°μ΄ν°λ μ΄λ»κ² νλ¬κ°λμ§ λ°νμ§ μμ μ± μ°μ°/ μμ μ νννλ λ°©μμ μ μΈμ νλ‘κ·Έλλ°μ΄λΌκ³ νλ€.
μ¦, νμν κ²μ λν κ³Όμ μ νλνλ ꡬννλ κ² λ³΄λ€λ νμν κ²μ΄ μ΄λ€ κ²μΈμ§μ λν΄ μ€μ μ λλ λ°©μμ΄λ€.
//λ°°μ΄μ νλΌλ―Έν°λ‘ λ°κ³ λͺ¨λ μμλ€μ κ°μ 2λ₯Ό κ³±νλ ν¨μ
function getDoubledElement(arr) {
const resultArr = arr.map(el => el * 2);
return resultArr;
}
console.log([1, 2, 3]); // [2, 4, 6];
μ΄ μ²λΌ μ μ°¨ν νλ‘κ·Έλλ° λ°©μμ΄ μΆμν λ κ²μ΄λΌκ³ λ³Ό μ μλ€. μ μΈν νλ‘κ·Έλλ°μ map () κ³Ό κ°μ΄ μ΄λ»κ²
μλλλμ§ μ νμμμ΄ λ¬΄μμ μνλμ§μ μ€μ μ λλ λ°©μμ΄λ€.
νμ§λ§ μ΄ν리μΌμ΄μ μ 볡μ‘λκ° λμμ§μλ‘ μ½λμ μ μ§λ³΄μμ±μ λ¨μ΄μ§λ©° 리ν©ν λ§νκΈ°κ° λ§€μ° μ΄λ €μμ§λ€.
λν νμ κ°μ κ²°κ³Όκ°μ κΈ°λν μ μμΌλ―λ‘ μΈμ μ΄λμ μλ¬κ° λμ€λμ§ λͺ¨λ₯΄λ μνλ μκ³ κ°μΌνλ€!! λͺ μ¬!
μ½νλ¦Ώ 13λ²
λΉκ΅μ μ΄λ €μ λ λ¬Έμ λ μλμμ§λ§ μ΄ ν λ¬Έμ λ‘ λ€μν μ½λλ₯Ό μμ±νκ² λ κ³κΈ°κ° μμ΄μ μ μ΄λ³΄λ €κ³ νλ€!
μ μλ₯Ό μμλ‘ κ°λ λ°°μ΄κ³Ό μ μ(num)λ₯Ό μ λ ₯λ°μ numμ λ°°μ΄μ μΆκ°νκ³ μ λ ¬νλ€κ³ κ°μ ν κ²½μ°, numμ μΈλ±μ€λ₯Ό 리ν΄
let output = getIndex([5, 4, 1, 3], 2);
console.log(output); // --> 1
output = getIndex([10, 5, 1, 3], 13);
console.log(output); // --> 4
//filter μ¬μ©
function getIndex(arr, num) {
const result = arr.filter(el => el < num);
return result.length;
}
λλ μ΄λ°μμΌλ‘ filter λ₯Ό μ¬μ©ν΄μ λ¬Έμ λ₯Ό ν΄κ²°νμλ€. νμ§λ§ reduceλ₯Ό μ¬μ©ν΄μ ν μλ μμκ³ , reduceλ‘λ ꡬνμ ν΄λ³΄μλ€.
//reduce μ¬μ© 1
function getIndex(arr, num) {
arr.push(num);
const result = arr.reduce((acc, cur) => {
if (cur < num) {
acc.push(cur);
return acc;
} else {
return acc;
}
}, []);
return result;
}
//reduce μ¬μ© 2
function getIndex(arr, num) {
arr.push(num);
return arr.reduce((acc, cur) => {
if (cur < num) {
acc++;
}
return acc;
}, 0);
}
μ΄λ―Έ λ¬Έμ λ₯Ό ν΄κ²°νμ§λ§ reduceλ₯Ό νμ©ν΄μ ν λ² λ νμ΄ λ³Έ μ΄μ λ reduceμ λ μ μνκΈ° μν΄μ μλ€.
μ€λ κ³ μ°¨ν¨μ, filter, map, reduce μ λν΄μ λ§μ λ¬Έμ λ₯Ό νμ΄λ³΄κ³ λ€λ£¨λ μ°μ΅μ νμλ€!! :muscle:
π λ΄μΌμ TIW(today I Will)
μ½νλ¦Ώ μκ³ λ¦¬μ¦