๐ฉ๐ป๐ป Today I Learned ๐
โญ ๋ฐฐ์ด์ด ๋ํ๋ฌ๋คํ๋ฉด ์๊ฐ๋๋ for๋ฌธ
๋ค์ํ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ๋ถ์ฌ๋ฐ์๊ณ , ํ๋์ฉ ํ์ด๋ณด๊ณ ์๋๋ฐ ๋ฐฐ์ด๋ก ํ๋ ๋ฌธ์ ๋ง ๋์๋คํ๋ฉด ์์ฐ์ค๋ for๋ฌธ์ ์ฐ๊ณ ์๋ค. ์ด์ ์ง๊ฒน๊ธฐ๊น์งํ for๋ฌธ.
๋ฌธ์ ์ ๋ฐ๋ผ์ ๋ค๋ฅด๊ฒ ์ง๋ง ์ด๋ค ๋ฌธ์ ๋ for๋ฌธ์ ์ฐ๋ฉด ํจ์จ์ ์ด๊ธฐ๋ํ๋ค. ํ์ง๋ง ์ด์ ๋ด์ฅํจ์๋ฅผ ์ฌ์ฉํด์ ํ ์ ์๋ ๋ฌธ์ ๋ ์จ์ ํ๊ณ ์ถ์๋ฐ ์ค๋ฅ๊ฐ ๊ณ์ ๋๋๊น, ๋ด์ฅํจ์ ๋๋ฌธ์ธ๊ฑด์ง, ์คํ๊ฐ ์๋๊ฑด์ง, ๋ด๊ฐ ์ฐ๋ ํจ์์ ํ์ ์ด ์์ด์ ๊ณ์ํด์ ํํผ๋ง ํ๊ฒ ๋๋ค.
์ค๋ ํจ๊ป ๊ณต๋ถํ๋ ํ์ ์ค ํ ๋ถ์ด reduce() ๋ผ๋ ๋ฉ์๋์ ๋ํด์ ์ค๋ช ํด์ค ์ ์๊ฒ ๋๊ณ ๋ฌผ์ด๋ณด์ ์ ๋ฐ๋ก ๊ฒ์์ ํด๋ดค์๋ค. reduce()ํจ์๋ ๊ทธ์ ๋ฐฐ์ด์ ์์์ ์ ์ฒด ํฉ์ฐ์ ๊ตฌํ๊ฑฐ๋, ์ต๊ณ ๊ฐ์ ๊ตฌํ ๋ ์ผ๋๋ฐ ์ด ํจ์์ ๋ํ ์ค๋ช ์ด๋ผ๊ณ ํ๋ ์ ๋ง ํ ๋ง์ด ์์๋ค. ๊ทธ๋ฅ ๊ณต์์ฒ๋ผ ์ธ์์ ์ฐ๋๊ฑฐ์๋๋ฐ, ์ง๋ํ๊ฒ ์์์ ํจ์๋ฅผ ๋ฏ์ด๋ณด๋ฏ์ด ๊ณต์๋ฌธ์๋ฅผ ์ฝ์ด๋ณด๊ณ ๊ณต๋ถํ๋ค.
์ ์ ๋ด์ฅํจ์์ ๋ํ ์์ฌ์ด ์๊ฒจ๋์ ๋๋ ์ฝ๋๋ฅผ ์์๊ณ ํด๋ฆฐํ๊ฒ ์ง๊ณ ์ถ๋ค๋ผ๋ ์๊ฐ์ด ๋ค์๋ค.
โญ filter() ๋ฉ์๋
์ด์ ์นํด์ง๊ณ ์ถ์ filter(). for๋ฌธ ๋์ ์ ์ฐ๊ณ ์ถ์ ๊ณณ์ ๋ง๊ป ์ฐ๊ณ ์ถ๋ค ์ ๋ง
arr.filter(callback(element[, index[, array]])[, thisArg])
filter()๋ callback ํจ์๋ก ์ด๋ค ์ผ์ ๋ฐ๋ณต ์ํํ๋ repeat์ด ๋๋ ํจ์์ด๋ค.
์ด๋ ํ๋ผ๋ฏธํฐ๋ฅผ 3๊ฐ๋ฅผ ๋ฐ์ ์ ์๋๋ฐ, element(์์), index(์์ ์ธ๋ฑ์ค), array(๋ฐฐ์ด์ ๊ฐ์ฒด)
this.Arg๋ filter์์ ์ฌ์ฉ๋ this ๊ฐ์ด๋ค. ์ ํ์ ์ผ๋ก ์ฌ์ฉ๋๋ฉฐ ์ฌ์ฉํ์ง ์์ ๊ฒฝ์ฐ underfined ์ ๋ฌ๋๋ค
์ฝ๋ฐฑํจ์์ด๋ค ๋ณด๋ for๋ฌธ ๋์ ์ ์ฌ์ฉํ ์ ์์ ๋๊ฐ ์๋๋ฐ, ํญ์ ์ด ์ ์ ์๊ณ for๋ฌธ์ ์ฐ๊ณ ์๋ค.
์ฐธ๊ณ
MDZ Reduce() ๐๐ป https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
MDZ Filter() ๐๐ป https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
์ด์ ์ ํ์ด๋ดค๋ ๋ฌธ์ ๋ค์ ๋ค๋ฅธ ํ์๋ค์๊ฒ ์ค๋ช
ํ๊ธฐ ์ํด์ ๋ณต๊ธฐํ๋ฏ์ด ํ๋ํ๋ ๋ค์ ํ์ด๋ณด๊ณ ๋ด๊ฐ ์ด๋ ต๋ค๊ณ ์๊ฐํ๋ ๋ฌธ์ ๋ค์ ๊ฑฐ์ ์ฑ๋ฆฐ์ง ํํธ์ ๋ชฐ๋ ค์์๋ค. ๊ทธ๋ง์ธ ์ฆ์จ, ์ฑ๋ฆฐ์ง ํํธ ๋ฌธ์ ๋ ๋ด๊ฐ ์์ ์ ํ์ด๋ณธ ๋ฌธ์ ๋ผ๋ ๊ฒ์ด๋ค.
ํ๋ ๋ ์ฉ ํ์ด๋ณด๊ณ ์๋๋ฐ, ์๊ฐ์ด ์ ๋ง ๋ง์ด ๊ฑธ๋ฆฐ๋ค. 15-30๋ถ ๋ณด๊ณ ์ ๋๊ฒ ์ผ๋ฉด ๋์ด๊ฐ๊ฑฐ๋ ํ์ํ ๊ฒ๊ฐ์ ๋ด์ฅํจ์๋ฅผ ๊ฒ์ํด๋ณธ๋ค๋๊ฐ ํด๋ณด๋๋ฐ… ์ญ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ง์ด ํ์ด๋ด์ผํ๋ ๊ฒ์ด๊ณ . ๊ทธ๋์ผ ์ง์์ด ์์ธ ๋ค๋ ๊ฒ์ ๋๋ผ๊ณ ์๋ค.
์ ํ๋ฆฌ๋ ๋ฌธ์ ๋ฅผ ๊ฒฐ๊ตญ์ ํ์ด๋ด๊ณ ๋๋ฉด ์ด์ฐ๋ ๋ฟ๋ฏํ์ง! ๋๋ฌด ์ ๋์ ๊ณ์ ๋์ ํ๊ฒ ๋๋ค. ๋๋ฌด ์ฌ๋ฐ์ด !!