๐Ÿ“’JavaScript

reduce() ๋ฉ”์†Œ๋“œ

eazyseon 2023. 2. 15. 15:50
๋ฐ˜์‘ํ˜•

reduce() 

- ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ฃผ์–ด์ง„ ๋ฆฌ๋“€์„œ(reducer) ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

- ๋ฆฌ๋“€์„œ ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ๊ฐ’์€ ๋ˆ„์‚ฐ๊ธฐ์— ํ• ๋‹น๋˜๊ณ , ๋ˆ„์‚ฐ๊ธฐ๋Š” ์ˆœํšŒ ์ค‘ ์œ ์ง€๋˜๋ฏ€๋กœ ๊ฒฐ๊ณผ๋Š” ํ•˜๋‚˜์˜ ๊ฐ’!

 

๋งค๊ฐœ๋ณ€์ˆ˜

-callback

  1. ๋ˆ„์‚ฐ๊ธฐ(acc) - ์ฝœ๋ฐฑ์˜ ๋ฐ˜ํ™˜๊ฐ’์„ ๋ˆ„์ , initialvalue๊ฐ€ ์žˆ์œผ๋ฉด initialValue๊ฐ€ ๋œ๋‹ค.

  2. ํ˜„์žฌ ๊ฐ’ (cur) - ์ฒ˜๋ฆฌํ•  ํ˜„์žฌ ์š”์†Œ

  3. ์ธ๋ฑ์Šค (idx) optional - ์ฒ˜๋ฆฌํ•  ํ˜„์žฌ ์š”์†Œ์˜ ์ธ๋ฑ์Šค, initialValue๊ฐ€ ์žˆ์œผ๋ฉด 0, ์•„๋‹ˆ๋ฉด 1

  4. ์›๋ณธ ๋ฐฐ์—ด (src)  optional - reduce()๋ฅผ ํ˜ธ์ถœํ•œ ๋ฐฐ์—ด

-initialValue optional

์ฝœ๋ฐฑ์˜ ์ตœ์ดˆ ํ˜ธ์ถœ์—์„œ ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜์— ์ œ๊ณตํ•˜๋Š” ๊ฐ’. ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์‚ฌ์šฉ.

๋นˆ ๋ฐฐ์—ด์—์„œ ์ดˆ๊ธฐ๊ฐ’์ด ์—†์„ ๊ฒฝ์šฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ

 

๋ฐ˜ํ™˜๊ฐ’

๋ˆ„์  ๊ณ„์‚ฐ์˜ ๊ฒฐ๊ณผ ๊ฐ’

 

 

 

์‚ฌ์šฉ ์‹œ ์ฃผ์˜ํ•  ์ 

 

- initialValue ์—†์„ ๋•Œ  ๐Ÿ‘‰ acc๋Š” ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ๊ฐ’(์˜ˆ์‹œ์—์„œ 1), cur์€ ๋ฐฐ์—ด์˜ ๋‘ ๋ฒˆ์งธ ๊ฐ’ (์˜ˆ์‹œ์—์„œ 2)

 

 

- initialValue ์žˆ์„ ๋•Œ  ๐Ÿ‘‰ acc๋Š” initailValue (์˜ˆ์‹œ์—์„œ 0), cur์€ ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ๊ฐ’ (์˜ˆ์‹œ์—์„œ 1)

 

 

์œ„์˜ ๋น„๊ต์ฒ˜๋Ÿผ initailValue๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด ์ธ๋ฑ์Šค 1๋ถ€ํ„ฐ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋ฏ€๋กœ initialValue๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•˜๋‹ค!!!๐Ÿ‘ท๐Ÿปโ€โ™€๏ธ๐Ÿ‘ท๐Ÿปโ€โ™€๏ธ

๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€์ˆ˜0