2023. 8. 19. 00:54ใ0. TiL ( Today I Learned )
ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด2 : ์๊ณ ๋ฆฌ์ฆ ํ์ด ํ๋ก๊ทธ๋๋ฐ
์ด๋ ค์ ๋ ๋ฒ ์ด์ค๋ณผ ๊ฒ์ ๋ง๋ค๊ธฐ ํ๊ณผ์ ๊ฐ ๋๋๊ณ , ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด 2์ฃผ ์ฐจ๊ฐ ์์๋์๋ค.
์ด๋ฒ์ฃผ๋ '์ฃผํน๊ธฐ์ธ์ด์ ์นํด์ง๊ธฐ' ๊ทธ๋ฆฌ๊ณ '์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์ฐ๋จนํ๊ธฐ'๋ก ๋ฐ์ ๋์๋ค.
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ ๋ฐฉํฅ๊ณผ ์ ๋ต์ ์ ์ํด ์ฃผ๋ '๋ด๋น๊ฒ์ดํฐ(navigator)' ๋, ๊ทธ์ ๋ง๋ ์ฝ๋๋ก ์ฝ๋ฉ์ ํ๊ณ , ์ค๋ช
๊น์ง ๊ฐ๋ฅํ '๋๋ผ์ด๋ฒ(driver)'๊ฐ ํ๋์ ํ์ด๊ฐ ๋์ด ๊ฐ์์ ์ญํ ์ ์ํํ๋ ํ๋ก๊ทธ๋๋ฐ์ด์๋ค.
๋จ๋ค์ ๋นํด ๋ด๊ฐ ์ด๋ค ๋ถ๋ถ์์ ์ฝ๋๋ฅผ ์ ๊ตฌํํ์ง ๋ชปํ๋์ง๋ฅผ ์กฐ๊ธ ๋ ์ ์ ์์๊ณ , ์๊ฐ์์ญ์ ํ์ฅ ํ ์ ์๋ ๊ธฐํ๊ฐ ๋์๋ค.
์ค๋์ ๊ณ ์ฐจํจ์์๋ํด์ ์กฐ๊ธ ๊ณต๋ถ๋ฅผ ํ๋๋ฐ, ํ๋ก๊ทธ๋๋จธ์ค์์ ๋ค๋ฅธ ์ฌ๋๋ค์ ํด๋ต์์๋ ์ฌ์ฌ์ฐฎ๊ฒ ๋ณด์๋ mapํจ์๊ฐ ๊ถ๊ธํ๋ค.
๊ตฌ๊ธ๋ง์ผ๋ก ์ฌ์ฉ์ ํ๊ธด ํ๋๋ฐ, ๋ง์ ์ฝ๋๋ฅผ ๋ง๋ค๋ ค๊ณ ํ๋ mapํจ์์ ๋ํด ์ฌ๋ ๊น๊ฒ ์์ง ๋ชปํ๋ค.
์ค๋์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ๊ณ ์ฐจํจ์ ํนํ mapํจ์์ ๋ํด ์กฐ๊ธ ๋ ์์๋ณด์๋ค.
(์์ฃผ์ฐ๋ ๊ณ ์ฐจํจ์) ์ถ๊ฐ๋ก ๊ณต๋ถํด์ผ ํ ๊ณ ์ฐจํจ์ : some / reduce / filter / every / map
๋ ธ๋ง๋์ฝ๋ say
"mapํจ์๋ ํจ์๋ฅผ ์คํํ๋, ๋ชจ๋ ๋ฐฐ์ด์ ์์ดํ ์ function์ ์คํํ๋ ๋ฉ์๋์ผ,
๊ทธ๋ฆฌ๊ณค ๋์ ๊ทธ ํจ์์ ๊ฒฐ๊ณผ ๊ฐ์ผ๋ก ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋๋ ๊ฑฐ์ง."
์ ์์์์ ๋์ค๋ ๋ถ๋ถ์์ map์ ๋ํด ์ค๋ช
ํ ๋ถ๋ถ์ ์ ๋ฆฌํ์๋ฉด,
mapํจ์๋ days์ ์๋ ๋ชจ๋ function์ ์คํํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ function์์ ๋์จ ๊ฐ์ ์ ์ฅํด์ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ง๋ ๋ค. ์๋์ ๊ฐ์ด!
const days =["Mon", "Tue", "Wend", "Thurs", "fri"]
const smilingDays= days.map(potato => console.log(potato))
// ์๋ฅผ ๋ค์ด potato๋ฅผ ์ด๋ ๊ฒ mapํจ์์ ์ฌ์ฉํ๊ฒ๋๋ฉด, ๋ฐฐ์ด์ ๊ฐ๊ฐ์ ๊ฐ์ ๊ฐ์ง๊ฒ๋๋ค.
// arry.map ํจ์๋ returnํ ๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐฐ์ด์ ๋ค์ returnํ๋ค.
// Mon
// Tue
// Wend
// Thurs
// fri
์ถ๊ฐ๋ก, ์๋์ ์ฌ์ดํธ์์ ๋ณธ mapํจ์์ ๋ํด ๋ถ๊ฐ ์ค๋ช
์ ํ์๋ฉด, ๋ฐฐ์ด์ ์ํํ๋ฉฐ ๊ฐ ์์์ ๋ํ์ฌ ์ธ์๋ก ์ฃผ์ด์ง ์ฝ๋ฐฑ ํจ์์ ๋ฐํ๊ฐ(๊ฒฐ๊ด๊ฐ)์ผ๋ก ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ์ฌ ๋ฐํํ๋ค. ์ด๋ ์๋ณธ ๋ฐฐ์ด์ ๋ณ๊ฒฝ๋์ง ์๋๋ค.
forEach ๋ฉ์๋๋ ๋ฐฐ์ด์ ์ํํ๋ฉฐ ์์ ๊ฐ์ ์ฐธ์กฐํ์ฌ ๋ฌด์ธ๊ฐ๋ฅผ ํ๊ธฐ ์ํ ํจ์ ์ด๋ฉฐ map ๋ฉ์๋๋ ๋ฐฐ์ด์ ์ํํ๋ฉฐ ์์ ๊ฐ์ ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋งตํํ๊ธฐ ์ํ ํจ์์ด๋ค.
poiemaweb ๋ด์ฉ (์ฐธ๊ณ ๊ด๋ จ URL) : https://poiemaweb.com/js-array-higher-order-function
Higher order function | PoiemaWeb
๋ฐฐ์ด(array)๋ 1๊ฐ์ ๋ณ์์ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ์์ฐจ์ ์ผ๋ก ์ ์ฅํ ๋ ์ฌ์ฉํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐฐ์ด์ ๊ฐ์ฒด์ด๋ฉฐ ์ ์ฉํ ๋ด์ฅ ๋ฉ์๋๋ฅผ ํฌํจํ๊ณ ์๋ค.
poiemaweb.com
(* ์ฐธ๊ณ ๋ก poiemaweb ์ฌ์ดํธ๋ ๊ธฐ์ ๋งค๋์ ๋์ด ์ถ์ฒํด ์ฃผ์ ์ฌ์ดํธ๋ค. '๋ชจ๋์๋ฐ์คํฌ๋ฆฝํธ' ์ฑ
์ ๊ธฐ๋ฐ์ผ๋ก ์ฐ์ธ ์ ๋ณด์ธ ๊ฒ ๊ฐ์๋ฐ,
์ด ์ฑ
์ ์ข
์ด์ฑ
์ผ๋ก ๊ฐ์ง๊ณ ์๋ ๋๋ก์ , ๋ณด๊ธฐ ํธํ๊ฒ ๋์ด์๋ ๊ฒ ๊ฐ์์ ์ข์ ๊ฒ ๊ฐ๋ค.)

์ด์ ๋ ์ํ + ํํ๋ก์ ํธ ์ ์ถ + ์๊ณ ๋ฆฌ์ฆ ์คํฐ๋ + ๊ธฐ์ ๋งค๋์ ๋ ๋ฉด๋ด + ํ๊ณ +... ํ๊ณ...๋ก,,, ์ธํด Til์ ์ ์ฐ๊ณ ์๋ฒ๋ ธ๋ค,,
๊ทธ๋์ ์์ฌ์ ์๊ฐ ๋ช ๋ถ ๋ ํ ์ ํด์ ๊ธธ๊ฒ ์ฐ๋ ์ค์ด๋ค..
ํ์ดํ๋ก๊ทธ๋จ์ ์ค๋ ๋๋ธ ์๊ฐ์,, ์ค.. ์ ์ ํ๋ค!
์์ง js๋ฌธ๋ฒ๊ณผ ์ฌ์ด๊ฐ ์ข์ง ์์ ๋๋, ๋์ปฅ ๊ฑฑ์ ์ด ๋์๊ณ .. (์ฐ๋ฆฌ ์ด์ ์ ๋ฒ ๋ง๋ฌ์ง ์์๋, ์ ๋งค๋ฒ ๋ฏ๊ฐ๋ ค?.. ์ฐ๋ฆฌ ์ธ์ ์นํด์ ธ? )
ํ์ดํ๋ก๊ทธ๋จ์ด ๋ฐ์ ๋๋ฉด์.. ์ค.. ๋.. ๋จ๋ค์๊ฒ ํผํด์ฃผ๋.. ํ๋ ์๊ฐ์ ๋ ๋ฒ ๊ฑฑ์ .. ์ผ์ฃผ์ผ ๋์ ๋ฌธ์ ๋ง ํผ๋ค๋ ๊ฒ์.. ์ธ ๋ฒ ๊ฑฑ์ .. ๊ทธ ๋ฌธ์ ๋์ด ์ด๋ง๋ฌด์ ๋ค๋ ๊ฒ์ ๋ค ๋ฒ ๊ฑฑ์ .. ๊ทธ๋ฅ ๊ฑฑ์ .. ์๊ฑฑ์ ์.. ๊ฑฑ์ ..์ด์์ง๋ง...... ์ข์๋ค!
๋ด๊ฐ ์๊ฐํ์ง ๋ชปํ ์๊ฐ์ ๊ณต์ ํ ์ ์์ด์ ์ข์๋ฌ๊น.. ์ ๊ทผ์ ์์ ํ ๋ฌ๋ฆฌํ๋ ๋ถ๋ค๋ ์์๊ณ , ๋์ ๋ค๋ฅธ ์ฌ๊ณ ํ๋ก๋ฅผ ๊ฐ์ง๊ณ ์๋ค ์๊ฐ์ด ๋๋ ๋ถ๋ค๋ ์์๋ค.. ๋ ๊ฐ์ ๋ฌธ๊ณผ์์ด๋ ๋ชจ๋ฅด๋ ์ด๊ณผ์๋ค์ ์ธ๊ณ๋๊น.. ๊ทธ๋๋ ๋ง์ด ์๊ทน๋ฐ์ผ๋ฉด์ ๊ณต๋ถํ ์ ์์ด์ ์ข์๋ค!
๋์ ๋ค๋ฅด๊ฒ ํ์๋ ์ ์ ํ๋ ์ ๊ทผ๋ฒ๋ค์ ๋ฐ๋ก ์ฒดํฌ๋ ํด๋์๋๋ฐ, ์ธ์ ์ ๋ฆฌํด์ ์ฌ๋ฆฌ๋ ์๊ฐ๋ ๊ฐ์ ธ์ผ์ง.. ๋ด ๊ฑธ๋ก ๋ง๋ค๊ฒ ๋ค..! ( ์๋.. ์ฐฝ์์ ๋ชจ๋ฐฉ์์๋ถํฐ ์์๋๋ค๊ณ ..? ? ? )
์ด๋ฒ์ฃผ ์๊ฐ์ด ๋นจ๋ฆฌ ๊ฐ๋ค.. ์์ง 3์ฃผ ์ฐจ ๊ฐ์ ๋ ๋ดค๋๋ฐ,, ๊ธฐ์ ๋งค๋์ ๋์ ์ฐ๋ฌ์ 2์ผ์ ๋ณด๋ฉด์, ๋ํ์์ฌ๊ฑฐ๋ฆฌ๊ฐ ์กฐ๊ธ ๋จ์ด์ก์ง๋ง ์ง๋ฌธํญ๊ฒฉ์ ํด์ผ ํ๋ค๊ณ ํด์, ์ด์ฌํ ์ง๋ฌธํ๋ค.. ๊ทธ๋ฆฌ๊ณ ์์ฃผ ๋ณด๋(?) ๊ฐ๋ฐ ํน์ ์ฝ๋ฉ ์ ํ๋ฒ๋ค์ ์ถ์ฒ๋ฐ์๋ค. ( ์ ํ๋ธ๋ก ๊ณต๋ถํ๋ ๊ฑฐ ์ข์ํจ.. ใ
์ฌ๋ฐ๊ฒ ๊ณต๋ถํ๋ฉด ์ข์์์? )
์ฌ์ด ์ฝ๋, ์ ๋ก์ด, ๊ฐ๋ฐ๋ฐ๋ฅ์ด ์์๋๋ฐ ์ ๋ก์ด๋ ์ฌ์ด ์ฝ๋๋ ๊ฐ๋ ๋ดค์๋๋ฐ ๊ฐ๋ฐ๋ฐ๋ฅ์ ์ค.. ์ฒ์ ๋ดค๋ค ์๊ฐ ๋ ๋ ๋ค ๋ด์ผ์ง..