Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Cách xóa đệ quy các phần tử trùng lặp liên tiếp khỏi mảng

Giả sử mảng số có các mục trùng lặp liên tiếp:

const testArr = [1, 1, 2, 2, 3, 3, 1, 1, 1];

Viết hàm compress xóa tất cả các mục trùng lặp liên tiếp tại chỗ (in place), kết quả:

const output = [1, 2, 3, 1];

Sử dụng đệ quy:

Ví dụ

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);

Kết quả

Đầu ra trong console sẽ là:

[ 1, 2, 3, 1 ]