Bộ có thể có các giá trị trùng lặp trong JavaScript không?

Có nhiều phương pháp để kiểm tra xem một mảng có chứa các giá trị trùng lặp trong JavaScript hay không. Bạn có thể sử dụng phương thức indexOf[], đối tượng Set hoặc phép lặp để xác định các mục lặp lại trong một mảng

Set Đối tượng

Set là một cấu trúc dữ liệu đặc biệt được giới thiệu trong ES6 lưu trữ một tập hợp các giá trị duy nhất. Vì mỗi giá trị trong một Set phải là duy nhất, nên việc chuyển bất kỳ mục trùng lặp nào sẽ tự động bị xóa

const numbers = [1, 2, 3, 2, 4, 5, 5, 6];

const unique = Array.from[new Set[numbers]];

console.log[unique];
// [ 1, 2, 3, 4, 5, 6 ]

Mảng. phương thức from[], chúng tôi đã sử dụng ở trên, chuyển đổi Set trở lại một mảng. Điều này là bắt buộc vì Set không phải là một mảng. Bạn cũng có thể sử dụng toán tử trải rộng nếu bạn muốn chuyển đổi

const unique = [...new Set[numbers]];

Để kiểm tra xem có các mục trùng lặp trong mảng ban đầu hay không, chỉ cần so sánh độ dài của cả hai mảng

const numbers = [1, 2, 3, 2, 4, 5, 5, 6];

const unique = Array.from[new Set[numbers]];

if[numbers.length === unique.length] {
    console.log[`Array doesn't contain duplicates.`];
} else {
    console.log[`Array contains duplicates.`];
}
// Output: Array contains duplicates.

Để biết chính xác phần tử nào trùng lặp, bạn có thể sử dụng mảng

const unique = [...new Set[numbers]];
4 ở trên và xóa từng phần tử khỏi mảng ban đầu như hình bên dưới

const numbers = [1, 2, 3, 2, 4, 5, 5, 6];

const set = new Set[numbers];

const duplicates = numbers.filter[item => {
    if [set.has[item]] {
        set.delete[item];
    } else {
        return item;
    }
}];

console.log[duplicates];
// [ 2, 5 ]

Phương pháp indexOf[]

Trong phương pháp này, chúng ta so sánh chỉ số của lần xuất hiện đầu tiên của một phần tử với tất cả các phần tử trong một mảng. Nếu chúng không khớp, điều đó có nghĩa là phần tử trùng lặp

const numbers = [1, 2, 3, 2, 4, 5, 5, 6];

const duplicates = numbers.filter[[item, index] => index !== numbers.indexOf[item]];

console.log[duplicates];
// [ 2, 5 ]

Giải pháp trên hoạt động hoàn hảo miễn là bạn chỉ muốn kiểm tra xem mảng có chứa các mục lặp lại không. Tuy nhiên, mảng đầu ra có thể chứa các mục trùng lặp nếu các mục đó xuất hiện nhiều hơn hai lần trong mảng

const numbers = [1, 2, 3, 2, 2, 4, 5, 5, 6];

const duplicates = numbers.filter[[item, index] => index !== numbers.indexOf[item]];

console.log[duplicates];
// [ 2, 2, 5 ]

const unique = [...new Set[numbers]];
6 Phương pháp

Trong JavaScript, phương thức

const unique = [...new Set[numbers]];
6 trả về
const unique = [...new Set[numbers]];
8 nếu một hoặc nhiều phần tử vượt qua một điều kiện nhất định

Cũng giống như phương thức

const unique = [...new Set[numbers]];
9, phương thức
const unique = [...new Set[numbers]];
6 lặp lại tất cả các phần tử trong một mảng để đánh giá điều kiện đã cho

Trong hàm gọi lại, chúng ta lại sử dụng phương thức indexOf[] để so sánh chỉ số phần tử hiện tại với các phần tử khác trong mảng. Nếu cả hai chỉ số đều giống nhau, điều đó có nghĩa là mục hiện tại không trùng lặp

const numbers = [1, 2, 3, 2, 4, 5, 5, 6];

const isDuplicate = numbers.some[[item, index] => index !== numbers.indexOf[item]];

if [!isDuplicate] {
    console.log[`Array doesn't contain duplicates.`];
} else {
    console.log[`Array contains duplicates.`];
}
// Output: Array contains duplicates.

const numbers = [1, 2, 3, 2, 4, 5, 5, 6];

const unique = Array.from[new Set[numbers]];

if[numbers.length === unique.length] {
    console.log[`Array doesn't contain duplicates.`];
} else {
    console.log[`Array contains duplicates.`];
}
// Output: Array contains duplicates.
2 Vòng lặp

Cuối cùng, phương pháp cuối cùng để tìm các bản sao trong một mảng là sử dụng vòng lặp

const numbers = [1, 2, 3, 2, 4, 5, 5, 6];

const unique = Array.from[new Set[numbers]];

if[numbers.length === unique.length] {
    console.log[`Array doesn't contain duplicates.`];
} else {
    console.log[`Array contains duplicates.`];
}
// Output: Array contains duplicates.
2

Dưới đây là một ví dụ so sánh từng phần tử của mảng với tất cả các phần tử khác của mảng để kiểm tra xem hai giá trị có giống nhau hay không bằng cách sử dụng vòng lặp for lồng nhau

Bộ có cho phép trùng lặp trong JavaScript không?

Bộ không cho phép trùng lặp và các bộ như LinkedHashSet duy trì thứ tự chèn để nó sẽ loại bỏ các bản sao và các thành phần sẽ được in theo cùng thứ tự mà nó được chèn vào.

Chúng ta có thể đặt các giá trị trùng lặp trong đối tượng đã đặt trong JavaScript không?

Giống như bất kỳ đối tượng nào khác trong JavaScript, có các quy tắc về cách set chức năng và cách chúng được sử dụng. Bộ là các đối tượng dữ liệu chứa một tập hợp các giá trị duy nhất. Các bộ có thể chứa bất kỳ loại dữ liệu nào, nhưng không được chứa các mục trùng lặp .

Có thể thiết lập giữ giá trị trùng lặp?

Tập hợp là Tập hợp không thể chứa các phần tử trùng lặp .

Bộ JavaScript có loại bỏ trùng lặp không?

Filter[], set[], forEach[], indexOf[] và reduce[] là các hàm mảng JavaScript cho phép người dùng xóa các mục trùng lặp .

Chủ Đề