โ ๋ฐฐ์ด.forEach(์ฝ๋ฐฑํจ์(๋ฐฐ์ด์ ๊ฐ, ๋ฐฐ์ด์ ์ธ๋ฑ์ค, ๋ฐฐ์ด), thisArg)
โ ๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํด์ ์ค๋ฆ์ฐจ์์ผ๋ก ํ๋ฒ ์ฉ ์คํ๋๋ค.
โ ๋ฐฐ์ด์ ๋ฉ์๋ map๊ณผ ์ ์ฌํ์ง๋ง map์ ๊ฒฐ๊ณผ๋ ์๋ก์ด ๊ฐ์ ๋ฐํํ์ง๋ง forEach๋ ๊ฒฐ๊ณผ๊ฐ์ ํญ์ undefined์ด๋ค.
forEach๋ฉ์๋๋ ๋ฐฐ์ด์ ๋ชจ๋ ๊ฐ๋ค์ ์ํํ๋ฉฐ ๋ช ๋ น๋ฌธ์ ์คํํ๋ค.
const arr = [1,2,3,4,5]; arr.forEach((value, index, array) => console.log(value, index, array)); // 1๋ฒ์คํ 1 0 [ 1, 2, 3, 4, 5 ] // 2๋ฒ์คํ 2 1 [ 1, 2, 3, 4, 5 ] // 3๋ฒ์คํ 3 2 [ 1, 2, 3, 4, 5 ] // 4๋ฒ์คํ 4 3 [ 1, 2, 3, 4, 5 ] // 5๋ฒ์คํ 5 4 [ 1, 2, 3, 4, 5 ]
๐ก ์๋๋ฐฉ์์ map๋ฉ์๋์ ๊ฐ์ง๋ง map๋ฉ์๋์ ๊ฒฐ๊ณผ ๊ฐ์ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ค์ด ๋ฐํํ์ง๋ง forEach๋ฌธ์ ์คํ๋ง ํ๊ฒ๋๋ค.
const arr = [1,2,3,4,5]; const forEach = arr.forEach((value, index, array) => { return value; }); console.log(forEach); // undefined ์ถ๋ ฅ
map๋ฉ์๋๋ ์๋ณธ๋ฐฐ์ด์ ํผ์ํ์ง์๊ณ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํ์๋ค๋ฉด forEach๋ ์๋ณธ๋ฐฐ์ด์ ์์ ํ ๋ ์ฉ์ดํ๊ฒ ์ฌ์ฉ๋๋ค.
let arr = [1,2,3,4,5]; const map = arr.map((value) => 2 * value); console.log(arr); // [ 1, 2, 3, 4, 5 ] ์ถ๋ ฅ console.log(map); // [ 2, 4, 6, 8, 10 ] ์ถ๋ ฅ arr.forEach((value, index) => arr[index] = 2 * value); console.log(arr); // [ 2, 4, 6, 8, 10 ] ์ถ๋ ฅ
๐ก ์ด์ฒ๋ผ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํด์ผ ํ ๊ฒฝ์ฐ์๋ map๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ณ ํด๋น ๋ฐฐ์ด์์ ์์ฐจ์ ์ผ๋ก ์์๋ค์ ๋ฐฉ๋ฌธํด์ ์ฒ๋ฆฌํ๊ฑฐ๋ ์๋ณธ๋ฐฐ์ด์ ์์ ํ ๊ฒฝ์ฐ์๋ forEach๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
Js์์๋ ์์๋ณ๋ก ์ ๊ทผํด์ ๋ฐ๋ณตํ๋๋ฌธ์ด ํฌ๊ฒ 3๊ฐ์ง๊ฐ ์๋ค. for in, for of, forEach๋ฅผ ์ฌ์ฉํ๋ฉฐ for in, for of ๋ฌธ์ ๋ํ์ฌ ์์๋ณด์
const arr = [1,1,1,1,1]; for(let index in arr) { console.log(index); // 0, 1, 2, 3, 4 ์ถ๋ ฅ } for(let value of arr) { console.log(value); // 1, 1, 1, 1, 1 ์ถ๋ ฅ }
๐ก ์ด์ฒ๋ผ for in๋ฌธ์ ๋ฐฐ์ด์ด๋ ๋ฌธ์์ด์ index๋ฒํธ๊ธฐ์ค์ผ๋ก ์ํํ๊ณ for of๋ฌธ์ ๋ฐฐ์ด์ด๋ ๋ฌธ์์ด ์์๋ค์ ๊ธฐ์ค์ผ๋ก ์ํํ๋ค.