Bir dizinin aynı olan 2 veya daha fazla öğeye sahip olup olmadığını nasıl görebilirim? [çiftleme]
Bir dizim var ve dizideki öğelerden herhangi birinin yinelenip yinelenmediğini kontrol etmek istiyorum.
["item1", "item2", "item3"] //false All the items are unique
["item1", "item2", "item1"] //true There are 2 of the same items.
Yanıtlar
2 jfriend00
Basit bir yol, bir 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
Dizi yalnızca dizelerle doluysa, bir küme kullanabilirsiniz. Diziden bir küme oluşturun, ardından dizi uzunluğunu ayarlanan boyutla karşılaştırın. Aynı iseler, benzersizdirler. Farklılarsa, bir kopya vardır. İşte basit bir örnek.
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
Bir dizinin belirli bir öğenin kopyalarını içerip içermediğini test etmenin basit bir yolu.
Kullanım: 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;
}
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı