Cách xóa các bản sao khỏi một mảng JavaScript

Cho một mảng, làm cách nào bạn có thể loại bỏ các giá trị trùng lặp trong đó?

Giả sử bạn có một mảng chứa một chuỗi các giá trị nguyên thủy, ví dụ như số hoặc chuỗi.

Một số yếu tố đó được lặp lại.

Giống như trong ví dụ này:

const list = [1, 2, 3, 4, 4, 3]

Chúng ta có thể tạo một mảng mới chứa các giá trị giống nhau, không có các giá trị trùng lặp, theo cách này:

const uniqueList = [...new Set(list)]

uniqueListbây giờ sẽ là một mảng mới với các giá trị[1, 2, 3, 4]trong đó.

Cái này hoạt động ra sao?

Setlà một cấu trúc dữ liệu mới, được giới thiệu trong ES6 vào năm 2015 và đặc điểm chính của nó là trở thành một vùng chứa dữ liệu không thể lặp lại trong cùng một tập hợp.Xem hướng dẫn đầy đủ của tôi về Đặt tại đây.

Bằng cách khởi tạo một Tập hợp với một mảng bị hủy (xem...nhà điều hành trước đâynew Set()), chúng tôi chuyển các giá trị và Đặt tự động loại bỏ các bản sao. Sau đó, chúng tôi chuyển đổi nó thành một mảng bằng cách gói nó vào dấu ngoặc vuông[].

Phương thức này hoạt động với bất kỳ thứ gì không phải là đối tượng:con số,dây, booleans,ký hiệu.

Tải xuống miễn phí của tôiSổ tay dành cho Người mới bắt đầu JavaScript


Các hướng dẫn js khác: