TIL( reduce )

2024. 8. 13. 23:27ใ†TIL

๐Ÿ’กreduce?

 

reduce ํ•จ์ˆ˜๋Š” ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆœํšŒํ•˜๋ฉฐ ์ˆซ์ž๋“  ๋ฐฐ์—ด์ด๋“  ๊ฐ์ฒด๋“  ํ•˜๋‚˜์˜ ๊ฐ’์œผ๋กœ ์ค„์—ฌ returnํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.

์ฆ‰, ๋ฐฐ์—ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋‚˜์˜ ๊ฐ’์„ ๋„์ถœํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

 

reduce() ๊ธฐ๋ณธ๋ฌธ๋ฒ•
arr.reduce(callback, initialValue)

 

- callback : ๊ฐ ์š”์†Œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋กœ ์ด ํ•จ์ˆ˜๊ฐ€ ๋ฐ›๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์•„๋ž˜๊ฐ€ ์žˆ๋‹ค.

• accumulator : ์ด์ „ ์ฝœ๋ฐฑ ํ•จ์ˆ˜ ํ˜ธ์ถœ์˜ ๋ฐ˜ํ™˜๊ฐ’์ด๋‹ค. ์ดˆ๊ธฐ๊ฐ’์„ ์ง€์ •ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๊ฐ€ ์ดˆ๊ธฐ๊ฐ’์ด ๋œ๋‹ค.

currentValue: ํ˜„์žฌ ์ฒ˜๋ฆฌ ์ค‘์ธ ์š”์†Œ์˜ ๊ฐ’์ด๋‹ค.

currerntIndex: ํ˜„์žฌ ์ฒ˜๋ฆฌ์ค‘์ธ ์š”์†Œ์˜ ์ธ๋ฑ์Šค์ด๋‹ค.

array: ์›๋ณธ ๋ฐฐ์—ด ์ž์ฒด์ด๋‹ค.

 

- initialValue : ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•  ๊ฐ’์œผ๋กœ, ์ƒ๋žตํ•˜๋ฉด ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๊ฐ€ ์ดˆ๊ธฐ๊ฐ’์ด ๋œ๋‹ค.

 

โœ reduce() ๋ฉ”์„œ๋“œ๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ํ˜ธ์ถœํ•˜๋ฉด์„œ ๋ˆ„์  ๊ฐ’์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ˜ธ์ถœ๋งˆ๋‹ค ์ฝœ๋ฐฑ ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์ด ๋‹ค์Œ ํ˜ธ์ถœ์˜ accumulator ๊ฐ’์ด ๋ฉ๋‹ˆ๋‹ค.

 

์˜ˆ์‹œ
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, curr) => acc + curr, 0);
console.log(sum);

=> ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ 0์„ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ, ๊ฐ ์š”์†Œ๋ฅผ ๋ˆ„์  ๊ฐ’์„ ๋”ํ•œ๋‹ค.

acc์—๋Š” ๋”ํ•ด์ง„ ๊ฐ’์ด ๋ˆ„์ ๋˜๋ฉฐ, curr๋Š” ๋ˆ„์ ๋  ๊ฐ’์ด ๋“ค์–ด๊ฐ„๋‹ค. 

 

 

 

 

 

 

 

 

 

 

'TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

TIL ( ๋ฉด์ ‘์นดํƒ€ jwt )  (0) 2024.08.16
TIL( SQL ๊ธฐ๋ณธ๋ฌธ๋ฒ• )  (0) 2024.08.14
TIL ( Redis-cache )  (0) 2024.08.12
TIL ( GUBU ํ”„๋กœ์ ํŠธ ์ค‘๊ฐ„ KPT )  (0) 2024.08.09
TIL ( Faker )  (0) 2024.08.07