2017-05-17 1 views
0

J'essaie de traverser tout le tableau jusqu'à la fin en cherchant l'élément particulier même s'il est trouvé, jusqu'à ce qu'il fonctionne jusqu'à ce qu'il soit trouvé pour la première fois. Comme j'ai un tableau nommé a = [a, b, c, d] // (prodname) et d'autres tableaux de ses ID i = [0,1,1,1] // prodAppidTraverser le tableau complet même après avoir trouvé la chaîne

maintenant ce que je want est de créer un tableau qui aura les éléments de tableau dont l'id est 1, qui devrait être final = [b, c, d] // TargetProducts1.

jusqu'à présent j'obtiens final = [b, b, b], ça ne va pas plus loin. c'est mon code

for items in prodAppid { 

      if var i = prodAppid.index(of: v_targetapplication) { 

       print("Product id is at index \(i)") 
       print("product Name = \(prodname[i])") 
       // product1Text.text = prodname[i] 
       //  TargetProducts1.append([prodname[i]]) 
       TargetProducts1.append(prodname[i]) 
       print("Target products for this application = \(TargetProducts1)") 



      } else { 
       print("Product Doesn't exsit for this Application") 
       product1Text.text = "No Product available for this Application!" 
      } 

     } 
+0

Qu'est-ce que 'v_targetapplication'? Quelle est sa valeur? –

Répondre

0
let names = ["a", "b", "c", "d"] 
let ids = [0, 1, 1, 1] 
let targetId = 1 
let targetNames: [String] = ids.enumerated() 
    .flatMap { (index, id) -> String? in 
     return targetId == id ? names[index] : nil 
    } 

Le problème de votre code est if var i = prodAppid.index(of: v_targetapplication) qui retourne toujours le premier indice qui se trouve v_targetapplication, qui est 1 dans votre cas.

+0

Parfait !! Merci. –