์๋ฐ์คํฌ๋ฆฝํธ ๋ฉด์ ์์๋ ์ข
์ข
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ง์์ ํ
์คํธํ๋ฉฐ, ํนํ `map`, `filter`, `reduce`์ ๊ฐ์ ๋ฐฐ์ด ๋ฉ์๋๋ฅผ ์ค์ ์ ์ผ๋ก ๋ค๋ฃน๋๋ค. ์ด๋ฌํ ๋ฉ์๋๋ ์ฝ๋์ ๊ฐ๋
์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ํฅ์์ํต๋๋ค. `Map`์ ๋ฐฐ์ด์ ๋ณํํ์ฌ ์์ ๋ ์์๊ฐ ํฌํจ๋ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค. `Filter`๋ ์กฐ๊ฑด์ ๊ธฐ๋ฐ์ผ๋ก ์์๋ฅผ ์ ํํ์ฌ ๋ถ๋ถ ์งํฉ์ ์์ฑํฉ๋๋ค. `Reduce`๋ ๋์ฐ๊ธฐ ํจ์๋ฅผ ํตํด ๋ฐฐ์ด์ ๋จ์ผ ๊ฐ์ผ๋ก ์ถ์ฝํฉ๋๋ค. ๊ฐ๋ฐ์๋ ์ด๋ฌํ ๋ฉ์๋ ๊ฐ์ ํต์ฌ์ ์ธ ์ฐจ์ด์ ๊ณผ ๊ตฌํ ๋ฐฉ๋ฒ์ ์ดํดํ๋์ง ํ๊ฐ๋ฐ์ต๋๋ค. ๋ฉด์ ๊ด์ ๋ํ `filter`๋ฅผ ์ฌ์ฉํ์ฌ falsy ๊ฐ์ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ๊ณผ `reduce`์ ์ฝ๋ฐฑ ํจ์์ ๊ตฌ์กฐ์ ๋ํด ์ง๋ฌธํฉ๋๋ค. `Map`๊ณผ `filter`๋ฅผ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ๊ณผ ๋ฐ์ดํฐ ๋ณํ์ ๋ํ ๊น์ ์ดํด๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ง๋ฌธ๋ ํฌํจ๋ฉ๋๋ค. `Map`/`filter`/`reduce`๋ฅผ ์ฌ์ฉํ๋ฉด ์ค๊ฐ ๋ฐฐ์ด ์์ฑ์ ํผํ์ฌ ์ฝ๋๋ฅผ ์ต์ ํํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ฉ์๋๋ ์์ ํจ์๋ฅผ ์ฅ๋ คํจ์ผ๋ก์จ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ๊ณผ ์ผ์นํฉ๋๋ค.
dev.to
๐ฅ JavaScript Interview Series(10): Functional Programming โ map, reduce, filter Explained
