Sử dụng đệ quy xóa các mục trùng lặp liên tiếp khỏi mảng trong JavaScript
Chúng ta cần viết một hàm nhận vào một mảng các giá trị number/string. Hàm nên xóa tất cả các phần tử liên tiếp dư thừa của mảng mà không sử dụng không gian bộ nhớ thêm.
Ví dụ, nếu mảng đầu vào là:
const arr = [17, 17, 17, 12, 12, 354, 354, 1, 1, 1];
Thì kết quả đầu ra nên là:
const output = [17, 12, 354, 1];
Do đó, hãy viết mã cho hàm này:
Ví dụ
Mã thực hiện như sau:
const arr = [17, 17, 17, 12, 12, 354, 354, 1, 1, 1];
const comp = (arr, len = 0, deletable = false) => {
if(len < arr.length){
if(deletable){
arr.splice(len, 1);
len--;
}
return comp(arr, len+1, arr[len] === arr[len+1])
};
return;
};
comp(arr);
console.log(arr);
Đầu ra
Kết quả trong console sẽ là:
[ 17, 12, 354, 1 ]