๊ฐœ๋ฐœ/โ›ต ํ•ญํ•ด99

[ํ•ญํ•ด99] Day09. TIL – For๋ฌธ์—์„œ Filter๋กœ ๊ฐ€๋Š” ๊ณผ๋„๊ธฐ (For๋ฌธ, Filter() ๊ณต๋ถ€)

๋ฐ(Ming) ๐Ÿˆ‍โฌ› 2022. 2. 18. 01:07
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป 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

 

Array.prototype.filter() - JavaScript | MDN

filter() ๋ฉ”์„œ๋“œ๋Š” ์ฃผ์–ด์ง„ ํ•จ์ˆ˜์˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

developer.mozilla.org

 

 

 

์ด์ „์— ํ’€์–ด๋ดค๋˜ ๋ฌธ์ œ๋“ค์„ ๋‹ค๋ฅธ ํŒ€์›๋“ค์—๊ฒŒ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ณต๊ธฐํ•˜๋“ฏ์ด ํ•˜๋‚˜ํ•˜๋‚˜ ๋‹ค์‹œ ํ’€์–ด๋ณด๊ณ  ๋‚ด๊ฐ€ ์–ด๋ ต๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋˜ ๋ฌธ์ œ๋“ค์€ ๊ฑฐ์˜ ์ฑŒ๋ฆฐ์ง€ ํŒŒํŠธ์— ๋ชฐ๋ ค์žˆ์—ˆ๋‹ค. ๊ทธ๋ง์ธ ์ฆ‰์Šจ, ์ฑŒ๋ฆฐ์ง€ ํŒŒํŠธ ๋ฌธ์ œ๋Š” ๋‚ด๊ฐ€ ์•„์˜ˆ ์•ˆ ํ’€์–ด๋ณธ ๋ฌธ์ œ๋ผ๋Š” ๊ฒƒ์ด๋‹ค.
ํ•˜๋‚˜ ๋‘˜ ์”ฉ ํ’€์–ด๋ณด๊ณ  ์žˆ๋Š”๋ฐ, ์‹œ๊ฐ„์ด ์ •๋ง ๋งŽ์ด ๊ฑธ๋ฆฐ๋‹ค. 15-30๋ถ„ ๋ณด๊ณ  ์•ˆ ๋˜๊ฒ ์œผ๋ฉด ๋„˜์–ด๊ฐ€๊ฑฐ๋‚˜ ํ•„์š”ํ•  ๊ฒƒ๊ฐ™์€ ๋‚ด์žฅํ•จ์ˆ˜๋ฅผ ๊ฒ€์ƒ‰ํ•ด๋ณธ๋‹ค๋˜๊ฐ€ ํ•ด๋ณด๋Š”๋ฐ… ์—ญ์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋งŽ์ด ํ’€์–ด๋ด์•ผํ•˜๋Š” ๊ฒƒ์ด๊ณ . ๊ทธ๋ž˜์•ผ ์ง€์‹์ด ์Œ“์ธ ๋‹ค๋Š” ๊ฒƒ์„ ๋А๋ผ๊ณ  ์žˆ๋‹ค. 

์•ˆ ํ’€๋ฆฌ๋˜ ๋ฌธ์ œ๋ฅผ ๊ฒฐ๊ตญ์—” ํ’€์–ด๋‚ด๊ณ  ๋‚˜๋ฉด ์–ด์ฐŒ๋‚˜ ๋ฟŒ๋“ฏํ•œ์ง€! ๋„ˆ๋ฌด ์‹ ๋‚˜์„œ ๊ณ„์† ๋„์ „ํ•˜๊ฒŒ ๋œ๋‹ค. ๋„ˆ๋ฌด ์žฌ๋ฐŒ์–ด !!

 

 

 

728x90