Bagaimana cara melihat apakah sebuah array memiliki 2 atau lebih elemen yang sama? [duplikat]

Jan 28 2021

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 Jan 28 2021 at 04:14

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 Jan 28 2021 at 04:18

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 Jan 28 2021 at 04:17

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;
}