Javascript: Splice vs Slice
Thi?u Quang Khoa
?Performance Tuning at Wecommit Vi?t Name | Oracle Database | Software Engineering Major at FPT University | 7.0 IETLS?
Trong JavaScript, splice và slice là hai ph??ng th?c ???c s? d?ng ?? làm vi?c v?i m?ng, nh?ng chúng có m?c ?ích và cách ho?t ??ng khác nhau.
1. Splice
Splice ???c s? d?ng ?? thay ??i m?ng g?c. B?n có th? thêm, xóa ho?c thay th? các ph?n t? trong m?ng.
Cú pháp c?a splice:
Sao chép m?
arr.splice(start, deleteCount, item1, item2, ..., itemN);
Ví d?:
Sao chép m?
const arr = ['apple', 'banana', 'mango', 'orange']; // Xóa 'banana' và 'mango', sau ?ó thêm 'grape' vào v? trí ?ó arr.splice(1, 2, 'grape'); console.log(arr); // ['apple', 'grape', 'orange']
Trong ví d? trên, m?ng g?c ?? b? thay ??i: 'banana' và 'mango' b? xóa, 'grape' ???c thêm vào.
2. Slice
Slice ???c s? d?ng ?? sao chép m?t ph?n m?ng mà kh?ng làm thay ??i m?ng g?c. Nó tr? v? m?t m?ng m?i ch?a các ph?n t? t? v? trí b?t ??u ??n v? trí k?t thúc (kh?ng bao g?m v? trí k?t thúc).
Cú pháp c?a slice:
Sao chép m?
arr.slice(start, end);
Ví d?:
Sao chép m?
const arr = ['apple', 'banana', 'mango', 'orange']; // Sao chép các ph?n t? t? v? trí 1 ??n 3 (kh?ng bao g?m 3) const newArr = arr.slice(1, 3); console.log(newArr); // ['banana', 'mango'] console.log(arr); // ['apple', 'banana', 'mango', 'orange']
? ?ay, m?ng g?c kh?ng b? thay ??i, mà ch? t?o ra m?t m?ng m?i t? m?ng c?.
Tóm l?i:
Nh? r?ng, splice thích h?p khi b?n c?n thay ??i m?ng tr?c ti?p, còn slice h?u ích khi b?n ch? c?n sao chép m?t ph?n c?a m?ng.