Những điều cần học 7 cách sử dụng toán tử trải ES6

Tram Ho

Toán tử trải rộng ES6 là một công cụ mạnh mẽ dành cho các nhà phát triển JavaScript. Đó là một tập hợp gồm ba điểm ( ... ) có thể được sử dụng để “mở rộng” các phần tử của đối tượng có thể lặp lại, chẳng hạn như mảng, bản đồ, tập hợp hoặc đối tượng.

Ví dụ: giả sử một dãy số được gọi là arr trông như thế này: [1, 2, 3, 4, 5] . Thay vì lặp qua mảng và console.log từng phần tử, bạn chỉ cần sử dụng toán tử trải rộng để in mảng: console.log(...arr) // 1 2 3 4 5

Nhưng toán tử trải rộng có thể tự làm được nhiều việc! Dưới đây là một số thủ thuật khác mà bạn có thể sử dụng:

1. Cách tốt hơn để sử dụng phương thức push() của mảng

Chúng ta đều biết rằng phương thức push() hỗ trợ truyền nhiều tham số không xác định.

Ví dụ này mở rộng các phần tử của mảng ['JavaScript', 'NodeJs'] bằng toán tử trải rộng và sử dụng các phần tử trải rộng làm đối số cho phương thức push để có thể thêm nhiều phần tử vào mảng trong một dòng.

2. Sao chép trình tự mới (bản sao nông)

Sao chép một mảng là một trong những tính năng hữu ích nhất của toán tử trải rộng, nhưng toán tử trải rộng chỉ sao chép chính mảng đó chứ không sao chép các phần tử. Do đó, nếu mảng ban đầu chứa các đối tượng, bất kỳ thay đổi nào được thực hiện đối với bản sao cũng sẽ ảnh hưởng đến mảng ban đầu vì chúng tham chiếu đến cùng một đối tượng.

Nếu bạn muốn tạo một bản sao thực bao gồm nội dung của mảng, bạn có thể sử dụng các hàm sao chép sâu chẳng hạn như JSON.parse(JSON.stringify(originalArray)) .

Tuy nhiên, phương pháp này chỉ hoạt động với dữ liệu tương thích với JSON và có thể gặp vấn đề về hiệu suất khi xử lý các mảng lớn. Ngoài ra, phương thức JSON.parse(JSON.stringify(originalArray)) không hoạt động nếu originalArray chứa hàm, ký hiệu hoặc giá trị không xác định.

Bạn cũng có thể sử dụng các thư viện như LodashRamda để bảo vệ các kiểu dữ liệu không phải JSON trong khi tạo các bản sao sâu của mảng và đối tượng.

3. Loại bỏ các giá trị trùng lặp khỏi mảng

Mảng các giá trị trùng lặp có thể được loại bỏ bằng cách sử dụng cấu trúc dữ liệu set và toán tử trải rộng.

4. Kết hợp nhiều mảng

Bạn có thể xâu chuỗi nhiều mảng để lấy dữ liệu mới bằng cách sử dụng toán tử trải phổ.

5. Chuyển NodeList thành mảng thực

Toán tử trải rộng có thể được sử dụng để chuyển đổi một NodeList, là danh sách các phần tử DOM, thành một mảng thực.

6. Phá hủy

Toán tử trải rộng thường được sử dụng để hủy cấu trúc mảng và đối tượng. Hãy xem nào!

Phá hủy mảng:

Các đối tượng cấu trúc:

7. Chuyển chuỗi thành mảng

Thật ngạc nhiên khi bạn có thể chuyển đổi một chuỗi thành một mảng như thế này phải không?

Phần kết luận

Toán tử trải rộng ( ... ) là một công cụ mạnh để giữ cho mã của bạn đơn giản và hiệu quả. Bạn có thể mở rộng các phần tử của đối tượng lặp, mảng, bộ, bản đồ và đối tượng. Nó có thể được sử dụng cho các tác vụ như hợp nhất mảng, sao chép mảng, loại bỏ các bản sao, phá hủy mảng và đối tượng cũng như chuyển đổi NodeList và chuỗi thành mảng.

Nhưng toán tử trải rộng tạo ra một bản sao nông, vì vậy bất kỳ thay đổi nào được thực hiện đối với mảng được sao chép sẽ ảnh hưởng đến mảng ban đầu. Vì vậy, bạn nên sử dụng JSON.parse(JSON.stringify(originalArray)) hoặc thư viện như lodash hoặc Ramda để tạo một bản sao sâu nếu cần.

Giới thiệu

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo