Phương thức splice
Phương thức splice xóa hoặc thêm
các phần tử vào mảng. Có thể chỉ xóa phần tử,
chỉ thêm phần tử hoặc thực hiện cả hai
cùng một lúc. Phương thức này rất linh hoạt và
phức tạp để hiểu.
Phương thức thay đổi chính mảng và trả về
mảng các phần tử đã bị xóa.
Tham số đầu tiên phương thức nhận là số thứ tự phần tử
của mảng cần xóa. Tham số thứ hai
- bao nhiêu phần tử của mảng nên được xóa.
Nếu đặt nó thành 0 - thì các phần tử sẽ không bị xóa
(chỉ thêm phần tử mới).
Tiếp theo, cách nhau bởi dấu phẩy là các phần tử
cần thêm vào mảng (là các tham số không bắt buộc).
Các phần tử này sẽ được thêm vào thay thế cho
các phần tử đã xóa của mảng.
Nếu không có việc xóa nào (khi tham số thứ hai là
0) - các phần tử sẽ được chèn vào mảng bắt đầu
từ vị trí được chỉ định bởi tham số đầu tiên.
Tham số đầu tiên có thể có giá trị âm.
Trong trường hợp này, việc đếm vị trí sẽ bắt đầu
không phải từ đầu mảng, mà từ cuối mảng. Phần tử cuối cùng
lúc này sẽ có số thứ tự -1.
Cú pháp
mảng.splice(vị trí bắt đầu xóa, số lượng xóa, [chèn], [chèn]...);
Ví dụ
Hãy xóa ba phần tử, bắt đầu từ phần tử thứ nhất:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(1, 3);
console.log(arr);
Kết quả thực thi mã:
['a', 'e']
Ví dụ
Hãy xuất mảng các phần tử đã xóa:
let arr = ['a', 'b', 'c', 'd', 'e'];
let del = arr.splice(1, 3);
console.log(del);
Kết quả thực thi mã:
['b', 'c', 'd']
Ví dụ
Đầu tiên hãy xóa phần tử có số thứ tự
2, sau đó thay thế nó bằng ba
phần tử mới:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(2, 1, '1', '2', '3');
console.log(arr);
Kết quả thực thi mã:
['a', 'b', '1', '2', '3', 'd', 'e']
Ví dụ
Bây giờ chúng ta sẽ không xóa gì cả, nhưng
tại vị trí 2, hãy chèn thêm ba
phần tử mới:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(2, 0, '1', '2', '3');
console.log(arr);
Kết quả thực thi mã:
['a', 'b', '1', '2', '3', 'c', 'd', 'e']
Ví dụ . Giá trị âm
Hãy xóa phần tử áp chót:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(-2, 1);
console.log(arr);
Kết quả thực thi mã:
['a', 'b', 'c', 'e']