Chúng ta có một mảng các giá trị Number/String chứa các giá trị trùng lặp, cần xóa các giá trị này khỏi mảng mà không tạo mảng mới hay lưu trữ các giá trị trùng lặp ở nơi khác.
Chúng ta sẽ sử dụng phương thức Array.prototype.splice() để xóa phần tử tại chỗ (in-place), kết hợp với Array.prototype.indexOf() và Array.prototype.lastIndexOf() để xác định tính trùng lặp của một phần tử.
Ví dụ
const arr = [1, 4, 6, 1, 2, 5, 2, 1, 6, 8, 7, 5];
arr.forEach((el, ind, array) => {
if (array.indexOf(el) !== array.lastIndexOf(el)) {
array.splice(ind, 1);
}
});
console.log(arr);Kết quả
Đầu ra trong console sẽ là:
[ 4, 1, 5, 2, 6, 8, 7 ]