Bagaimana cara melihat apakah sebuah array memiliki 2 atau lebih elemen yang sama? [duplikat]
Saya memiliki sebuah array, dan saya ingin memeriksa apakah ada elemen dalam array yang diduplikasi.
["item1", "item2", "item3"] //false All the items are unique
["item1", "item2", "item1"] //true There are 2 of the same items.
Jawaban
2 jfriend00
Cara sederhana adalah dengan menggunakan file Set
.
function doesContainDups(array) {
let set = new Set(array);
return set.size !== array.length;
}
console.log(doesContainDups(["item1", "item2", "item3"]));
console.log(doesContainDups(["item1", "item2", "item1"]));
1 BenBradshaw
Jika array hanya diisi dengan string, Anda dapat menggunakan satu set. Buat satu set dari larik, lalu bandingkan panjang larik dengan ukuran yang ditetapkan. Jika mereka sama, maka mereka unik. Jika berbeda, ada duplikatnya. Berikut ini contoh sederhananya.
const arr1 = ["item1", "item2", "item3"];
const arr2 = ["item1", "item2", "item1"];
const setFromArr1 = new Set(arr1);
const setFromArr2 = new Set(arr2);
const arr1AllUnique = arr1.length === setFromArr1.size;
const arr2AllUnique = arr2.length === setFromArr2.size;
console.log(arr1AllUnique);
console.log(arr2AllUnique);
Haytam
Berikut cara sederhana untuk menguji apakah sebuah array menyertakan duplikat dari item tertentu.
Pemakaian: containsDuplicateOf(yourArray, "item1")
function containsDuplicateOf(array, item) {
for (let i = 0; i < array.length; i++) {
const current = array[i];
let count = 0;
for (let j = 0; j < array.length; j++) {
if (array[j] === current)
count++;
if (count > 1) return true;
}
}
return false;
}