Bir dizinin aynı olan 2 veya daha fazla öğeye sahip olup olmadığını nasıl görebilirim? [çiftleme]
Jan 28 2021
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 Jan 28 2021 at 04:14
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 Jan 28 2021 at 04:18
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 Jan 28 2021 at 04:17
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;
}
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı