β λ°°μ΄.reduce(μ½λ°±ν¨μ(λμ κ°, νμ¬κ°, νμ¬ μΈλ±μ€, λ°°μ΄), μ΄κΈ°κ°)
β λ°°μ΄μ κ° μμμ λνμ¬ μ€νκ°μ λμ νλ©΄μ λ¨ νλμ κ°μ λ°ννλ€.
β μ΄κΈ°κ°μ μ€μ νμ§ μλλ€λ©΄ λ°°μ΄μ 첫 μΈλ±μ€ κ°μΌλ‘ μ΄κΈ°κ°μ΄ μ€νλλ€.
λ°°μ΄μ κ° μμλ₯Ό μννλ©΄μ λμ ν νλμ κ°μ λ°ννλ€.
const arr = [1,2,3,4,5]; const reduce = arr.reduce((acc, curr, currindex, arr) => { console.log(acc, curr, currindex, arr); }); // 1λ² μ€ν 1 2 1 [ 1, 2, 3, 4, 5 ] // 2λ² μ€ν undefined 3 2 [ 1, 2, 3, 4, 5 ] // 3λ² μ€ν undefined 4 3 [ 1, 2, 3, 4, 5 ] // 4λ² μ€ν undefined 5 4 [ 1, 2, 3, 4, 5 ] console.log(reduce); // undefined μΆλ ₯
π‘ μ°μ°μ μ€ννλ μ€νλ¬Έμ΄ μμΌλ―λ‘ undefindeκ° μΆλ ₯λλ€.
π‘ 첫 λμ κ° μμμ μ΄κΈ°κ°μ΄ μμΌλ―λ‘ λ°°μ΄μ 첫 μΈλ±μ€ κ°μ΄ λ€μ΄κ°λ€.
const arr = [1,2,3,4,5]; const reduce = arr.reduce((acc, curr) => { console.log('λμ κ°', acc, 'νμ¬ λ£μκ°', curr); return acc + curr; }); // 1λ² μ€ν λμ κ° 1 νμ¬ λ£μκ° 2 // 2λ² μ€ν λμ κ° 3 νμ¬ λ£μκ° 3 // 3λ² μ€ν λμ κ° 6 νμ¬ λ£μκ° 4 // 4λ² μ€ν λμ κ° 10 νμ¬ λ£μκ° 5 console.log(reduce); // 15 μΆλ ₯
π‘ μ΄μ²λΌ κ°μ΄ λμ λλ©΄μ νλμ κ°μ λ°ννλ€.
const arr = [1,2,3,4,5]; const reduce = arr.reduce((acc, curr) => { console.log('λμ κ°', acc, 'νμ¬ λ£μκ°', curr); return acc + curr; }, 10); // 1λ² μ€ν λμ κ° 10 νμ¬ λ£μκ° 1 // 2λ² μ€ν λμ κ° 11 νμ¬ λ£μκ° 2 // 3λ² μ€ν λμ κ° 13 νμ¬ λ£μκ° 3 // 4λ² μ€ν λμ κ° 16 νμ¬ λ£μκ° 4 // 5λ² μ€ν λμ κ° 20 νμ¬ λ£μκ° 5 console.log(reduce); // 25 μΆλ ₯
π‘ μ€νμ΄ νλ² λ μ§νλλ€. μλνλ©΄ μ΄κΈ°κ°μ μ€μ νμκΈ° λλ¬Έμ΄λ€.
const arr = [1,2,3,4,5]; const reduce = arr.reduce((acc, curr) => { console.log('λμ κ°', acc, 'νμ¬ λ£μκ°', curr); if(curr > 2) return [...acc, curr]; else return acc; }, []); // 1λ² μ€ν λμ κ° [] νμ¬ λ£μκ° 1 // 2λ² μ€ν λμ κ° [] νμ¬ λ£μκ° 2 // 3λ² μ€ν λμ κ° [] νμ¬ λ£μκ° 3 // 4λ² μ€ν λμ κ° [ 3 ] νμ¬ λ£μκ° 4 // 5λ² μ€ν λμ κ° [ 3, 4 ] νμ¬ λ£μκ° 5 console.log(reduce); // [ 3, 4, 5 ] μΆλ ₯
π‘ λΉ λ°°μ΄μ μ΄κΈ°κ°μΌλ‘ λ£μ΄μ£Όκ³ 쑰건μ λ§λ κ²½μ° accμμ μλ λ°°μ΄ μμλ€κ³Ό currμ κ°μ μΆκ°ν΄μ λ°°μ΄λ‘ λ°ννλ€.
π‘ μ΄μ²λΌ λ°°μ΄μμ 쑰건μ λ§κ² μ μ κ° κ°λ₯νλ€.
π κ³μ°μ΄λ 쑰건μ λ§κ² κ·Έλ£Ήννλκ²μ μ¬μ©νλ ν¨μμ΄λ€. μμ§ reduceλ₯Ό λνκΈ°ν¨μλ‘ μ¬μ©νμ§ μλλ‘ reduceμ λν΄μ μκ²λλ λ΄μ©μ΄ μμΌλ©΄ μΆκ°ν μμ μ΄λ€.
π λνκΈ°λ‘λ§ λ무 λ§μ΄ μ¬μ©ν κ² κ°λ€....
μΆμ
MDN = Array.prototype.reduce()