forEach() λ©μλλ λ°°μ΄μ νμ©μ΄ κ°λ₯ν λ©μλλ‘, νλΌλ―Έν°λ‘ μ£Όμ΄μ§ ν¨μλ₯Ό λ°°μ΄ μμ κ°κ°μ λν΄ μ€ννλ λ©μλμ΄λ€.
map() λ©μλμ κ±°μ λΉμ·νμ§λ§ μ°¨μ΄μ μ λ°λ‘ return νλ κ°μ΄ μλ€λ μ μ΄λ€.
λ¬Έλ²)
const myArr = [1, 2, 3]; const newMyArr = myArr.forEach((currentElement, index, array) => { console.log(`μμ: ${currentElement}`); console.log(`index: ${index}`); console.log(array); }); //μμ: 1, index: 0, (3) [1, 2, 3] //μμ: 2, index: 1, (3) [1, 2, 3] //μμ: 3, index: 2, (3) [1, 2, 3] console.log(newMyArr); //undefined
forEach λ©μλλ mapλ©μλμ λμΌνκ² νλΌλ―Έν°λ‘ μ½λ°± ν¨μλ₯Ό λ°λλ°, κ·Έ μ½λ°± ν¨μμ νλΌλ―Έν°λ μμ, index κ·Έλ¦¬κ³ νμ¬ mapλ©μλλ₯Ό νΈμΆν λ°°μ΄μ΄λ€.
forEach λ©μλλ μΈλ²μ§Έ λ°°μ΄μ μ μ¬μ©λμ§ μκ³ μΌλ°μ μΌλ‘ 첫 λ²μ§Έ μμμ, λ λ²μ§Έ indexκ° λ§μ΄ μ¬μ©λλ€.
μμμλ μΈκΈνμ§λ§, map λ©μλμ μ°¨μ΄μ μ λ°λ‘ μ½λ°± ν¨μκ° return νλ κ°μ λ°λ‘ λͺ¨μμ μ΄λ€ μ²λ¦¬λ₯Ό νλ κ³Όμ μ΄ μκΈ° λλ¬Έμ, λ©μλλ₯Ό νΈμΆν μ½λλ₯Ό ν¨μμ ν λΉνλ©΄ undefinedκ° ν λΉλλ€.
κ·Έλμ forEach λ©μλλ λ³μμ ν λΉνκΈ° 보λ€λ λ°λ³΅λ¬Έμ΄λ 쑰건문과 κ°μ΄ κ·Έλ₯ λ°λ‘ νΈμΆλλ κ²μ΄ μΌλ°μ μ΄λ€.
const myArr = ['κ°μμ§', 'κ³ μμ΄', 'νμ€ν°', 'κ±°λΆμ΄', 'μ΄κ΅¬μλ']; myArr.forEach((el, i) => { console.log(i); console.log(el); if(el === 'κ³ μμ΄') { myArr.shift(); } }) console.log(myArr); // ['κ³ μμ΄', 'νμ€ν°', 'κ±°λΆμ΄', 'μ΄κ΅¬μλ']
κ·Έλ¦¬κ³ forEach λ©μλμ μ½λ°±ν¨μ λ΄μμ λ©μλλ₯Ό νΈμΆν λ°°μ΄μ λ³κ²½νλ κ²μ΄ κ°λ₯νλ°,
μ μ½λμ²λΌ νΉμ μν©μμ μμ νλλ₯Ό μμ ν΄λ²λ¦¬κ² λλ©΄ κ·Έλ€μ μμλ₯Ό μ°Ύμ λ, λ³κ²½λ λ°°μ΄μμ ν΄λΉνλ indexλ₯Ό μ°ΎκΈ° λλ¬Έμ μ΄ μ½λμ μ€νκ²°κ³Όλ₯Ό 보면 κ³ μμ΄ λ€μμ κ±°λΆμ΄κ° μΆλ ₯λλλ°, λ©μλκ° μ€νλ μ΄νμ myArrλ₯Ό μ΄ν΄λ³΄λ©΄, κ°μμ§κ° λ°°μ΄μμ μμ λ κ±Έ νμΈν μ μλ€.
μ°Έκ³ )
forEachμ μμνΈνμ΄λΌκ³ ν΄μ λ°°μ΄μ μμλ€μ μνν λ κ·Έλ₯ 무쑰건 map λ©μλλ₯Ό νμ©νλ κ²½μ°λ₯Ό λ³Έ μ μ΄ μμλλ°,
κ°μΈμ μΌλ‘λ return κ°μΌλ‘ μλ‘μ΄ λ°°μ΄μ΄ νμνμ§ μλ κ²½μ°λΌλ©΄ forEach λ©μλλ₯Ό νμ©νλ κ²μ΄ μ³λ€κ³ μκ°νλ€.