J'ai trouvé this question answered here concernant l'intersection de deux tableaux. Que faire si je veux savoir ce qu'il y a de commun entre plus de deux tableaux d'objets? Que faire si je ne sais pas combien de tableaux il y aura?Intersection de plus de 2 ensembles de tableaux?
MISE À JOUR:
Voici mon code et tenter de recouper un certain nombre de tableaux inconnus, mais je ne peux obtenir jusqu'à deux tableaux dans ce scénario avant d'avoir à se soucier de l'indice de problèmes de portée et ensembles perdre dans la prochaine boucle autour. J'ai pensé à les stocker dans des variables temporaires en boucle, mais je ne suis pas sûr que ce soit la meilleure solution.
//anyArray is an array of string arrays containing
//the items I want to intersect
let count = anyArray.count - 1
//var temp: Array<String>
for index in 0...count {
let item1 = anyArray[index] as! Array<String>
if index < count {
let item2 = anyArray[index + 1] as! Array<String>
let set1 = Set(item1)
let set2 = Set(item2)
let inter = set1.intersect(set2)
print(inter)
}
}
MISE À JOUR 2
La réponse finale est une combinaison de la réponse de Phillip ci-dessous et le code que je suis commentaire ici. Cela répond à la question "Et si vous ne savez pas combien de réseaux il y aura?"
L'astuce consistait à définir et à initialiser un ensemble temporaire pour l'intersection dans le tour suivant dans la boucle. Je devais l'initialiser sinon il ne me laisserait pas l'utiliser.
let count = anyArray.count - 1
var inter = Set<String>()
for index in 0...count {
if index == 0 {
let item1 = anyArray[index] as! Array<String>
let item2 = anyArray[index + 1] as! Array<String>
let set1 = Set(item1)
let set2 = Set(item2)
inter = set1.intersect(set2)
} else {
if index < count {
let item = anyArray[index + 1] as! Array<String>
inter = inter.intersect(item)
}
}
}
print(inter)
Vous pouvez continuer à recouper avec le résultat de l'opération précédente. À un certain moment, vous devez savoir combien vous avez ou, au moins, si vous en avez un autre. –
Oh je pensais que le résultat était une chaîne ... –