โ ์ธ์ด์ ์งํ : ํฌํธ๋์ ํ์ ์ด ์๋ ์ธ์ด, C๋ ์ฝํ ํ์ ์ธ์ด, ์์ด๋ค๋ ๊ฐํ ํ์ ์ธ์ด, C++๋ ๊ฐํ ํํ ์ธ์ด. โ
- Ron Sercely

How to early break reduce()
์๋ฐ์คํฌ๋ฆฝํธ์ reduce() ๋ฃจํ ๊ณ ์ฐจํจ์๋ฅผ ์ค๊ฐ์ breakํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ผ๋ฐ์ ์ธ break๋ฌธ๋ฒ์ ๊ณ ์ฐจํจ์์๋ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์, reduce์ ๋ฐ๋ณต์กฐ๊ฑด์ ๋ฒ์๋ฐ ๊ฐ์ผ๋ก ์ค์ ํ๋ ์์ผ๋ก ๋์ด ๋ด๋ ์ ๋ฐ์ ์๋ค.
const array = ['9', '91', '95', '96', '99'];
const x = array
.slice(0) // array๋ฅผ ๋ณต์ฌํ๋ค. slice(0)ํ๋ฉด ๊ทธ๋๋ก ๋ณต์ฌ๋๋ค.
.reduce((acc, curr, i, arr) => {
if (i === 2) arr.splice(1); // ์ธ๋ฑ์ค 1 ์ดํ์ ๋ชจ๋ ์์๋ฅผ ์ญ์ ํ๋ค. ๋ฐ๋ผ์ ๋์ด์ ์ํํ ์์๊ฐ ์์ด์ break๋๋ ์๋ฆฌ์ด๋ค
// ๋ค๋ง ๊ธฐ์กด ๋ฐฐ์ด์ด ์ญ์ ๋ ์ ์์ผ๋ ์ฒซ๋ฒ์งธ๋จ๊ณ์์ slice(0)๋ก ๋ฐฐ์ด์ ๋ณต์ฌํ ์ด์ ๊ฐ ์ด๊ฒ์ด๋ค.
return (acc += curr);
}, '');
console.log("x: ", x, "\noriginal Arr: ", array);
// x: 99195
// original Arr: [ '9', '91', '95', '96', '99' ]
์ธ์ฉํ ๋ถ๋ถ์ ์์ด ๋ง์ผ ๋๋ฝ๋ ์ถ์ฒ๊ฐ ์๋ค๋ฉด ๋ฐ๋์ ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค
์ด ๊ธ์ด ์ข์ผ์ จ๋ค๋ฉด ๊ตฌ๋ & ์ข์์
์ฌ๋ฌ๋ถ์ ๊ตฌ๋
๊ณผ ์ข์์๋
์ ์์๊ฒ ํฐ ํ์ด ๋ฉ๋๋ค.