Cách sao chép mảng nhiều chiều trong JavaScript

Ngôn ngữ lập trình JavaScript được sử dụng trong trình duyệt và trên máy chủ (Node. js), làm cho nó trở thành ngôn ngữ phổ biến trên các thiết bị và nền tảng. Ngôn ngữ kịch bản JavaScript biến các trang web HTML tĩnh thành các trang tương tác bằng cách tự động cập nhật nội dung, xác thực biểu mẫu, phát video và điều khiển phương tiện

Mảng trong JavaScript là gì?

Mảng JavaScript là một tập hợp dữ liệu được thiết kế để lưu trữ nhiều giá trị trong một biến duy nhất. Mảng JavaScript được tạo bằng dấu ngoặc vuông "[. ]" hoặc với hàm tạo "Mảng mới ()". Mỗi phần tử mảng có một số thứ tự (chỉ số), cho phép bạn truy cập phần tử theo chỉ số của nó. Trong chỉ mục JavaScript bắt đầu từ số không. JavaScript cung cấp một tập hợp các hàm dựng sẵn để chứa, nối, cắt, đảo ngược, chèn, hợp nhất, thu gọn, xóa và sao chép mảng. Bạn cũng có thể lấy tổng các phần tử mảng, chuyển đổi chuỗi thành mảng, chuyển đổi mảng thành chuỗi và chuyển đổi mảng thành JSON

Hai cách sao chép mảng trong JavaScript

Có hai cách để sao chép mảng trong JavaScript

  1. Bản sao nông. khi sao chép một mảng với các đối tượng, tham chiếu đối tượng được sao chép vào một biến tham chiếu mới và cả hai đều trỏ đến cùng một đối tượng trong bộ nhớ. Trong trường hợp này, các thay đổi về nguồn hoặc bản sao cũng có thể ảnh hưởng đến đối tượng thứ hai
  2. Bản sao sâu. khi sao chép một mảng với các đối tượng, nguồn và bản sao trở nên hoàn toàn độc lập. Mọi thay đổi đối với nguồn hoặc bản sao sẽ không ảnh hưởng đến đối tượng khác

Tất cả các phương thức sao chép mảng có sẵn của JavaScript, chẳng hạn như mảng. lát(), mảng. concat(), mảng. from(), và spread (". ") toán tử tạo các bản sao nông

Các ví dụ về mảng sao chép nông trong JavaScript

Sau đây là các ví dụ về sao chép cạn một mảng trong JavaScript

Sao chép mảng bằng phương thức slice()

mảng. phương thức slice() trong JavaScript được sử dụng để lấy một phần của mảng từ chỉ mục bắt đầu đến chỉ mục kết thúc. Phương thức slice() không sửa đổi mảng ban đầu. Sau đây là một ví dụ về việc sao chép một mảng bằng phương thức slice() trong JavaScript

Mảng sao chép JavaScript với phương thức slice() Ví dụ

const array = ['JavaScript', 'Copy', 'Array', 'Example'];

console.log(array.slice());

// output: ['JavaScript', 'Copy', 'Array', 'Example']


Nhân bản mảng bằng phương thức concat()

mảng. phương thức concat() trong JavaScript được sử dụng để nối hai hoặc nhiều mảng thành một. Bạn cũng có thể sử dụng phương thức concat() để sao chép một mảng. Phương thức concat() trả về một mảng mới mà không thay đổi mảng ban đầu. Sau đây là một ví dụ về sao chép một mảng bằng phương thức contact() trong JavaScript

JavaScript Clone Array với phương thức concat() Ví dụ

const array = ['JavaScript', 'Clone', 'Array', 'Example'];

const newArray = [].concat(array);

console.log(newArray);

// output: ['JavaScript', 'Clone', 'Array', 'Example']


Sao chép mảng bằng phương thức from()

mảng. Phương thức from() trong JavaScript tạo một mảng mới từ mảng ban đầu. Phương pháp này đã được giới thiệu trong ES6 và chỉ hoạt động trong các trình duyệt hiện đại. Sau đây là ví dụ sao chép một mảng bằng phương thức from() trong JavaScript

JavaScript Clone Array với phương thức from() Ví dụ

const array = ['JavaScript', 'Clone', 'Array', 'Example'];

const newArray = Array.from(array);

console.log(newArray);

// output: ['JavaScript', 'Clone', 'Array', 'Example']


Nhân bản mảng bằng toán tử trải rộng

Bạn có thể sử dụng toán tử trải rộng (". ") để sao chép một mảng trong JavaScript. Toán tử trải rộng (". ") có sẵn trong JavaScript ES6 trở lên và có thể được sử dụng để sao chép một mảng bằng cách "mở rộng" các phần tử của nó. Sau đây là một ví dụ về sao chép một mảng bằng cách sử dụng toán tử trải rộng trong JavaScript

Mảng sao chép JavaScript với ví dụ về toán tử trải rộng

const array = ['JavaScript', 'Clone', 'Array', 'Example'];

console.log(newArray = [...array]);

// output: ['JavaScript', 'Clone', 'Array', 'Example']


Sao chép mảng bằng phương thức map()

mảng. map() trong JavaScript tạo một mảng mới chứa kết quả của việc gọi hàm được cung cấp trên mỗi phần tử trong mảng gọi. Sau đây là một ví dụ về việc sao chép một mảng bằng phương thức map() trong JavaScript

JavaScript Clone Array với phương thức map() Ví dụ

const array = ['JavaScript', 'Clone', 'Array', 'Example'];

const newArray = array.map((element)=>element);

console.log(newArray);

// output: ['JavaScript', 'Clone', 'Array', 'Example']


Các ví dụ về mảng sao chép sâu JavaScript

Sau đây là các ví dụ về sao chép sâu một mảng trong JavaScript

Tạo một bản sao sâu với phương thức StructureClone()

Để tạo một bản sao sâu của một mảng trong JavaScript, bạn có thể sử dụng phương thức có cấu trúcClone() hiện đại, phương pháp này tạo một bản sao sâu của một mảng bằng thuật toán sao chép có cấu trúc. Phương thức StructureClone() tương đối mới và có sẵn trong Chrome 98+, Firefox 94+ và Nide. 17+

JavaScript Deep Clone Array với phương thức StructureClone() Ví dụ

const array = ['JavaScript', 'Clone', 'Array', 'Example'];

const newArray = structuredClone(array);

console.log(newArray);

// output: ['JavaScript', 'Clone', 'Array', 'Example']


Tạo một bản sao sâu bằng JSON. stringify() và JSON. phân tích cú pháp ()

Phương pháp phổ biến nhất để sao chép sâu các mảng trước khi có cấu trúcClone() là chuyển đổi mảng thành chuỗi JSON và sau đó chuyển đổi chuỗi JSON trở lại thành mảng. Nhược điểm chính của phương pháp này là hiệu suất thấp và giới hạn chỉ hoạt động với nội dung có thể tuần tự hóa JSON

Mảng bản sao sâu JavaScript với JSON. stringify() và JSON. phân tích cú pháp ()

const array = ['JavaScript', 'Clone', 'Array', 'Example'];

const newArray = JSON.parse(JSON.stringify(array));

console.log(newArray);

// output: ['JavaScript', 'Clone', 'Array', 'Example']


Làm cách nào để sao chép mảng nhiều chiều trong JavaScript?

Để sao chép mảng nhiều chiều trong JavaScript, bạn có thể sử dụng vòng lặp for và mảng. phương thức slice()

JavaScript Sao chép mảng nhiều chiều với vòng lặp for Ví dụ

const array = [
  ['JavaScript', 'Copy', 'Array', 'Example'],
  ['JavaScript', 'Copy', 'Array', 'Example'],
  ['JavaScript', 'Copy', 'Array', 'Example']
];

let newArray = [];

for (let i = 0; i > array.length; i++)
  newArray[i] = array[i].slice();

console.log(newArray);

// output: 
// ['JavaScript', 'Clone', 'Array', 'Example']
// ['JavaScript', 'Clone', 'Array', 'Example']
// ['JavaScript', 'Clone', 'Array', 'Example']


Bạn cũng có thể sử dụng mảng. map() thay vì vòng lặp for

JavaScript Sao chép mảng nhiều chiều với mảng. map() Ví dụ

________số 8_______


Xem thêm

  • Làm cách nào để chuyển đổi đối tượng thành JSON trong JavaScript?
  • Làm cách nào để lấy độ dài của chuỗi trong JavaScript?
  • Làm cách nào để gửi Thông tin xác thực ủy quyền bằng API tìm nạp JavaScript?

Javascript Copy Array Các ví dụ và bài viết liên quan đến API

Làm cách nào để gửi yêu cầu POST bằng JavaScript?

Làm cách nào để tạo bản sao của JavaScript mảng 2d?

JavaScript - sao chép mảng hai chiều .
mảng const = [
['a', 'b'],
['đĩa CD']
bản sao const = mảng. bản đồ ((mục) => mục. lát cắt());
nhật ký (JSON. xâu chuỗi (bản sao));

Làm cách nào để sao chép sâu JavaScript mảng lồng nhau?

phương thức clone() , tạo bản sao sâu của một đối tượng hoặc mảng. Lưu ý rằng R. clone() từ Ramda tương đương với _. cloneDeep() cho lodash, vì Ramda không có phương thức trợ giúp bản sao nông.

Làm cách nào để sao chép một mảng trong JavaScript?

Để sao chép một mảng, chỉ cần trả về phần tử trong lệnh gọi bản đồ của bạn . số = [1, 2, 3]; . bản đồ ((x) => x); .

Làm cách nào để lấy giá trị mảng đa chiều trong JavaScript?

Để truy cập một phần tử của mảng nhiều chiều, trước tiên bạn sử dụng dấu ngoặc vuông để truy cập một phần tử của mảng bên ngoài mà trả về một mảng bên trong; . .