6.4. Array function Slice & Splice - quan1997ap/angular-app-note GitHub Wiki
1.So sánh slice & splice
1.1. slice
Syntax
array.slice(from, until)
from: Chí số của phần tử bắt đầu được chọn để cắt. Tính từ 0
until: Chỉ số của phần tử được cắt đến .
Ex
let array = [
{a: 1, b: 1},
{a: 2, b: 2},
{a: 3, b: 3},
{a: 4, b: 4}
]
// lấy phần tử cuối
let sliceArr = array.slice(0, 4);
console.log(array, sliceArr, array === sliceArr)
// thay đổi giá trị xem mảng cũ có bị đổi không
sliceArr[0].a = 'change';
console.log(array, sliceArr);
// so sánh 2 mảng
console.log(array === sliceArr)

1.2 splice
Syntax
Cách 1: Xóa phần tử
array.splice(index, number of elements);
index: chỉ số của phần tử đầu tiên được cắt **number **of elements: số lượng phần tử sẽ bị cắt đi.
Cách 2: Thêm phần tử
array.splice(index, howmany, item1, ....., itemX)
index: Vị trí bắt đầu được thêm vào
howmany: Số lượng phần tử bị xóa
item1, ..., itemX: Các phần tử có thể được thêm vào
let array = [
{a: 1, b: 1},
{a: 2, b: 2},
{a: 3, b: 3},
{a: 4, b: 4}
]
// lấy phần tử cuối
let spliceArr = array.splice(0, 4);
console.log(array, spliceArr, array === spliceArr)
// thay đổi giá trị xem mảng cũ có bị đổi không
spliceArr[0].a = 'change';
console.log(array, spliceArr);
// so sánh 2 mảng
console.log(array === spliceArr)

Kết luận
Slice
-
Slice dùng để tạo 1 mảng từ mảng cũ.
-
Các phần tử trong mảng type object. Thì các phần tử này vẫn reference với nhau( nghĩa là khi thay đổi 1 trong 2 thì phần tử còn lại cũng đổi )
-
Khi dùng slice thì mảng cũ sẽ không bị ảnh hưởng về số lượng. Tuy nhiên các phần tử type object vẫn reference với nhau
Splice
-
Slice dùng để tạo 1 mảng từ mảng cũ. Nếu các phần tử trong mảng type object.
-
Slice dùng để cắt, thêm mới phần tử.
-
Khi dùng splice thì mảng cũ sẽ bị ảnh hưởng về số lượng. Các phần tử type object vẫn reference với nhau( như Slice )
=> Giống: Các phần tử trong mảng type object vẫn reference với nhau
Khác slice không làm thay đổi số lượng phần tử của mảng cũ. Splice thì có