Come vedere se un array ha 2 o più elementi uguali? [duplicare]
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
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
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
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;
}