Tìm số lượng trùng lặp trong mảng javascript

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

const unique = [...new Set(numbers)];
5, đối tượng
const unique = [...new Set(numbers)];
6 hoặc phép lặp để xác định các mục lặp lại trong một mảng

const unique = [...new Set(numbers)]; 6 đố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

const unique = [...new Set(numbers)];
6 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

const unique = [...new Set(numbers)];
6 trở lại thành một mảng. Điều này là bắt buộc vì
const unique = [...new Set(numbers)];
6 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 const unique = [...new Set(numbers)]; 5

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 ]

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

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

const unique = [...new Set(numbers)];
5 để 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 unique = [...new Set(numbers)];
2

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

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

Có bao nhiêu bản sao trong một mảng?

Cho một mảng các số nguyên, hãy đếm số phần tử trùng lặp của mảng. Trùng lặp được định nghĩa là có nhiều phần tử giống nhau . Ví dụ, trong mảng [1, 3, 3, 5, 5, 5], hai số 3 trùng nhau và ba số 5 cũng vậy. Vì vậy, số lượng trùng lặp là 2.

Làm cách nào tôi có thể tìm các giá trị trùng khớp trong hai mảng trùng lặp?

Làm cách nào để tìm các giá trị trùng khớp trong hai mảng trùng lặp? .
Sử dụng phương thức indexOf()
Sử dụng phương thức has()
Sử dụng một cặp đối tượng & giá trị khóa
Sử dụng chức năng “một số”
Sử dụng phép lặp