Öncelikle iki dizideki ürün sayısı eşit olacak mı?
Ve iki dizideki elemanlar eşit mi? Sırası önemli değil ama eşit olmaları önemli. Bu koşullar sağlandığında aşağıdaki yöntem çalışır.
var urunler1 = ["1.urun","2.urun","3.urun","4.urun","5.urun","6.urun","7.urun","25.urun"]
var urunler2 = ["6.urun","1.urun","5.urun","2.urun","25.urun","7.urun","3.urun","4.urun"]
func diziKarsilastir(ilk ilkDizi: [String], ikinci ikinciDizi: [String]) -> Bool{
if ilkDizi.count == ikinciDizi.count && ilkDizi.sorted() == ikinciDizi.sorted(){
return true
}else {
return false
}
}
print(diziKarsilastir(ilk: urunler1, ikinci: urunler2)) // Eğer iki arraydeki eleman sayıları eşit ise, ve değerler eşit ise true döndürür.Ama dizi sayıları eşit değil bir dizide 10 eleman var bir dizide 2 eleman var. Bu 2 elemanın o 10 elemanlık dizi içinde olup olmadığını kontrol etmek istiyorsak ise:
var urunler1 = ["1.urun","2.urun","3.urun","4.urun","5.urun","6.urun","7.urun","25.urun"]
var urunler2 = ["5.urun","2.urun","25.urun","6.urun","18.urun"]
func ayniUrunVarmi(ilk ilkDizi: [String], ikinci ikinciDizi: [String]) -> Bool{
for urun in ikinciDizi {
if ilkDizi.contains(urun){
return true
}
}
return false
}
print(ayniUrunVarmi(ilk: urunler1, ikinci: urunler2)) // bu fonksiyon ise ikinci dizinin elemanlarını böler, ve ilk dizi bu elemanları kapsıyor mu diye kontrol ettirir. ardından gerekli boolean değerini return eder