
forEach, map, filter, reduce, find
π forEach, map, filter, reduce, find
μ λ€ λ©μλλ λ°°μ΄μμ μμ£Ό μ°μ΄λ©΄μ λΉμ·ν κΈ°λ₯μ νλ λ©μλλ€μ΄λ€.
π .forEach()
forEach() λ©μλλ κ° μμμ λνμ¬ μμκ°κ³Ό μΈλ±μ€λ₯Ό νμ©ν ν¨μλ₯Ό μμ±νμ¬ μ¬μ©νλ λ©μλμ΄λ€. μ΄ λ forEachλ return κ°μ΄ μλ€.
undefined
const num = [1,2,3,4,5,6]; const init = 10; const num_forEach = num.forEach((val,cur) => { console.log(val, cur) return val + cur},init); console.log(num_forEach); // 1 0 // 2 1 // 3 2 // 4 3 // 5 4 // 6 5
---
## π .map()
map()μ λ°°μ΄ κ° μμμ λνμ¬ μ£Όμ΄μ§ ν¨μλ₯Ό μνν κ²°κ³Όλ₯Ό λͺ¨μ μλ‘μ΄ λ°°μ΄μ λ°ννλ λ©μλμ΄λ€.
μ¬μ© λ°©λ²μ 3κ°μ λ§€κ°λ³μμ μ΄λ₯Ό μ¬μ©νλ ν¨μλ₯Ό μμ±νμ¬ μ¬μ©νλ€.
μλμ κ°μ΄ μ¬μ© κ°λ₯νλ€.
> ```javascript
const num = [1,2,3,4,5,6];
const num_map = num.map((val,index,arr) => {
console.log(val,index,arr);
return val*2;
});
console.log(num_map);
//1 0 [ 1, 2, 3, 4, 5, 6 ]
//2 1 [ 1, 2, 3, 4, 5, 6 ]
//3 2 [ 1, 2, 3, 4, 5, 6 ]
//4 3 [ 1, 2, 3, 4, 5, 6 ]
//5 4 [ 1, 2, 3, 4, 5, 6 ]
//6 5 [ 1, 2, 3, 4, 5, 6 ]
//[ 2, 4, 6, 8, 10, 12 ]
κ° λ©κ° λ³μλ μλμ κ°λ€.
- val : νμ¬ μμ
- index : νμ¬ μμμ μΈλ±μ€
- arr : map()μ νΈμΆν μλ³Έ λ°°μ΄
μλμ κ°μ΄ λ§€κ°λ³μλ‘ λ°°μ΄μ μΈμλ₯Ό λ°κ³ , ν΄λΉ μΈμλ₯Ό μ΄μ©νλ μμ μμ±νμ¬ μ¬μ©νμ¬ κ°λ¨νκ² λνλΌ μλ μλ€.
> ```javascript
const num = [1,2,3,4,5,6];
const num_map = num.map(val => val*2);
console.log(num_map);
//[ 2, 4, 6, 8, 10, 12 ]
---
## π .filter()
filter()λ **λ°°μ΄ κ° μμμ λν΄μ μ£Όμ΄μ§ ν¨μμ κ²°κ΄κ°μ΄ trueμΈ μμλ₯Ό λͺ¨μ μλ‘μ΄ λ°°μ΄μ λ°ννλ λ©μλ**μ΄λ€.
map()μμλ λ¦¬ν΄ κ°μ΄ λ€μν νμ
μΌλ‘ κ°λ₯νμ§λ§, filterμμλ μ€μ§ **boolean νμ
**λ§ λ¦¬ν΄κ°μΌλ‘ κ°λ₯νλ€.
μ¬μ© λ°©λ²μ map()κ³Ό κ°μ΄ 3κ°μ λ§€κ°λ³μλ₯Ό κ°μ§κ³ μ΄λ₯Ό μ¬μ©νλ ν¨μλ₯Ό μ
λ ₯νμ¬ μ¬μ©κ°λ₯νλ€.
> ```javascript
const num = [1,2,3,4,5,6];
const num_filter = num.filter((val,index,arr) => {
console.log(val,index,arr);
return val % 2 === 0;
});
console.log(num_filter);
// 1 0 [ 1, 2, 3, 4, 5, 6 ]
// 2 1 [ 1, 2, 3, 4, 5, 6 ]
// 3 2 [ 1, 2, 3, 4, 5, 6 ]
// 4 3 [ 1, 2, 3, 4, 5, 6 ]
// 5 4 [ 1, 2, 3, 4, 5, 6 ]
// 6 5 [ 1, 2, 3, 4, 5, 6 ]
// [ 2, 4, 6 ]
μλμ κ°μ΄ λ§€κ°λ³μλ‘ λ°°μ΄μ μΈμλ₯Ό λ°κ³ , ν΄λΉ μΈμλ₯Ό μ΄μ©νλ μμ μμ±νμ¬ μ¬μ©νμ¬ κ°λ¨νκ² λνλΌ μλ μλ€.
> ```javascript
const num = [1,2,3,4,5,6];
const num_filter = num.filter(val => val % 2 ===0);
console.log(num_filter);
//[ 2, 4, 6 ]
---
## π .reduce()
reduce() λ©μλλ μμμ μμλ³Έ μΈ λ©μλλ³΄λ€ λ³΅μ‘ν ννλ₯Ό κ°μ§κ³ μλ€. νμ§λ§ μΆ©λΆν μ΄ν΄νλ€λ©΄ λ€μν μν©μμ νμ©μ΄ κ°λ₯ν λ©μλμ΄λ€.
μ΄ λ©μλλ λ°°μ΄ κ° μμμ λνμ¬ μ
λ ₯ν ν¨μλ₯Ό μ€ννκ³ λ¦¬ν΄κ°μ λ€μ μμλ‘ λ겨주며 λ§μ§λ§μ νλμ κ²°κ΄κ°μ λ°ννλ€. νλμ κ²°κ΄κ°μ λ°ν νλ€λ μ μμ μ μΈ λ©μλμ μ°¨μ΄κ° μλ€.
μ¬μ© λ°©λ²μ 2κ°μ λ§€κ°λ³μμ μ€ν ν¨μ, μ΄κΈ°κ°μ μ
λ ₯νμ¬ μ¬μ©νλ€. μ΄ λ μ΄κΈ°κ°μ 0μΌλ‘ default λμ΄ μλ€.
> ```javascript
const num = [1,2,3,4,5,6];
const init = 10;
const num_reduce = num.reduce((val,cur,index,array) => {
console.log(val, cur)
return val + cur},init);
console.log(num_reduce);
// 10 1
// 11 2
// 13 3
// 16 4
// 20 5
// 25 6
// 31
- init : μ΄κΈ°κ°
- val : μ λ¬κ°
- cur : νμ¬ μμ κ°
- index : νμ¬ μμμ μΈλ±μ€ κ°
- array : reduce()λ₯Ό νΈμΆν μλ³Έ λ°°μ΄
----
## π.find()
find()** **λ©μλλ μ£Όμ΄μ§ νλ³ ν¨μλ₯Ό λ§μ‘±νλ 첫 λ²μ§Έ μμμ **κ°**μ λ°νν©λλ€. κ·Έλ° μμκ° μλ€λ©΄ undefinedλ₯Ό λ°ννλ€.
> ```javascript
const array1 = [5, 12, 8, 130, 44];
const found = array1.find(element => element > 10);
console.log(found);
// expected output: 12