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

Tạo mảng mới không ảnh hưởng mảng gốc trong JavaScript (shallow copy)

Tạo bản sao mảng (shallow copy) bằng slice(), spread operator, Array.from() hoặc JSON.parse(JSON.stringify()) (deep clone).

Ví dụ


var original = ["John", "Mike", "Sam", "Carol"];

// Cách 1: slice() - phổ biến nhất
var copy1 = original.slice();

// Cách 2: Spread operator (ES6)
var copy2 = [...original];

// Cách 3: Array.from()
var copy3 = Array.from(original);

// Cách 4: Deep clone (cho object lồng nhau)
var copy4 = JSON.parse(JSON.stringify(original));

console.log("Copy:", copy1);
console.log("Cùng tham chiếu?", copy1 === original); // false

Cách chạy

node demo.js

Kết quả


Copy: [ 'John', 'Mike', 'Sam', 'Carol' ]
Cùng tham chiếu? false

Lưu ý: Tất cả là shallow copy. Nếu mảng chứa object, object con vẫn chia sẻ tham chiếu. Dùng cách 4 cho deep clone.