Hello Ocean! ๐ŸŒผ

[VanillaJS] map๊ณผ forEach ๋ณธ๋ฌธ

Web

[VanillaJS] map๊ณผ forEach

bba_dda 2021. 10. 1. 23:58
๋ฐ˜์‘ํ˜•

JS์—์„œ array์˜ ๊ฐ ์›์†Œ์— ๋Œ€ํ•ด ๊ฐ™์€ ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜๊ณ  ์‹ถ์„ ๋•Œ, for๋ฌธ ๋Œ€์‹ ์— 

Array.prototype.map()์ด๋‚˜ Array.prototype.forEach()๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋‘ ํ•จ์ˆ˜์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ผ๊นŒ? MDN ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด๋ณด์ž.

 

map() : ๋ฐฐ์—ด ๋‚ด์˜ ๋ชจ๋“  ์›์†Œ ๊ฐ๊ฐ์— ๋Œ€ํ•˜์—ฌ ์ฃผ์–ด์ง„ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜

* ๊ธฐ์กด ๋ฐฐ์—ด์˜ ์›์†Œ๋“ค๋กœ ์ž‘์—…์„ ์™„๋ฃŒํ•œ ๋’ค ํ•ด๋‹น ๊ฒฐ๊ณผ๋ฌผ๋“ค์„ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ returnํ•ด์ค€๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

* ๋”ฐ๋ผ์„œ map์˜ ์šฉ๋„๋ฅผ ์ œ๋Œ€๋กœ ์‚ด๋ฆฌ๋ ค๋ฉด callback ํ•จ์ˆ˜ ๋‚ด์— return ๊ตฌ๋ฌธ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. 

 

forEach() : ์ฃผ์–ด์ง„ ํ•จ์ˆ˜๋ฅผ ๋ฐฐ์—ด ์š”์†Œ ๊ฐ๊ฐ์— ๋Œ€ํ•ด ์‹คํ–‰

* forEach()๋Š” ๋ฐฐ์—ด์„ ๋ณ€ํ˜•ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ callback์—์„œ ๋ณ€ํ˜•ํ•  ์ˆ˜๋Š” ์žˆ๋‹ค.

 

// map ์˜ˆ์‹œ
const array1 = ['a', 'b', 'c'];
array1.map(element => return element+"!");
// array1 = ["a!", "b!", "c!"]

// forEach ์˜ˆ์‹œ
const array2 = ['a', 'b', 'c'];
array2.forEach((element) => console.log(element));

// forEach์—์„œ ๋ฐฐ์—ด์„ ๋ณ€ํ˜•ํ•˜๋Š” ์˜ˆ์‹œ 
const array3 = ['a', 'b', 'c'];
array3.forEach((element, idx) => array1[i] = element+"!");
// array3 = ["a!", "b!", "c!"]

 

๋ฐฐ์—ด์„ ์ˆœํšŒ ํ•˜๋ ค๋ฉด forEach(), 

๋ฐฐ์—ด์„ ์ˆœํšŒ ํ›„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์–ป๊ณ  ์‹ถ๋‹ค๋ฉด map()์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. 

 

์ฐธ๊ณ ์ž๋ฃŒ

MDN ๊ณต์‹ ๋ฌธ์„œ

https://m.blog.naver.com/wideeyed/221877912230

https://frontdev.tistory.com/entry/JS-Map-vs-ForEach

๋ฐ˜์‘ํ˜•