Come vedere se un array ha 2 o più elementi uguali? [duplicare]

Jan 28 2021

Ho un array e voglio controllare se qualcuno degli elementi nell'array è duplicato.

["item1", "item2", "item3"] //false All the items are unique
["item1", "item2", "item1"] //true There are 2 of the same items.

Risposte

2 jfriend00 Jan 28 2021 at 04:14

Un modo semplice è usare un 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

Se l'array è riempito solo con stringhe, puoi usare un set. Crea un set dall'array, quindi confronta la lunghezza dell'array con la dimensione dell'insieme. Se sono la stessa cosa, allora sono unici. Se sono diversi, c'è un duplicato. Qui c'è un semplice esempio.

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

Ecco un modo semplice per verificare se un array include duplicati di un elemento specifico.

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