...
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' ]
인용한 부분에 있어 만일 누락된 출처가 있다면 반드시 알려주시면 감사하겠습니다
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.