다음과 같은 연속적인 중복 항목을 포함하는 숫자 리터럴 배열이 있다고 가정해 보겠습니다. -
const testArr = [1, 1, 2, 2, 3, 3, 1, 1, 1];
우리는 이 배열을 취하고 제자리에서 모든 중복 연속 항목을 제거하는 함수 compress를 작성해야 합니다. 출력이 다음과 같이 보이도록 -
const output = [1, 2, 3, 1];
이 함수에 대한 코드를 작성해 보겠습니다. 이를 위해 재귀를 사용하고 이에 대한 코드는 −
예시
const testArr = [1, 1, 2, 2, 3, 3, 1, 1, 1]; const compress = (arr, len = 0, canDelete = false) => { if(len < arr.length){ if(canDelete){ arr.splice(len, 1); len--; } return compress(arr, len+1, arr[len] === arr[len+1]) }; return; }; compress(testArr); console.log(testArr);
출력
콘솔의 출력은 -
[ 1, 2, 3, 1 ]