2017-05-17 2 views
0

gefunden habe. Ich versuche, das ganze Array bis zum Ende durchzusuchen, um das bestimmte Element zu finden, selbst wenn es gefunden wird, bis es funktioniert, bis es zum ersten Mal gefunden wird. Wie ich habe ein benanntes Array a = [a, b, c, d] // (prodname) und andere Reihe von es ist ids i = [0,1,1,1] // prodAppidTraversiere das komplette Array, auch nachdem ich die Zeichenfolge

jetzt, was ich want besteht darin, ein Array zu erstellen, das die Elemente des Arrays a hat, dessen ID 1 ist, was endgültig sein soll = [b, c, d] // TargetProducts1.

bis jetzt bin ich fertig = [b, b, b], es geht nicht weiter. dies ist mein 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

Was ist 'v_targetapplication'? Was ist sein Wert? –

Antwort

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 
    } 

Das Problem des Codes ist if var i = prodAppid.index(of: v_targetapplication), die immer den ersten Index zurück, die v_targetapplication gefunden wird, die 1 in Ihrem Fall ist.

+0

Perfekt !! Vielen Dank. –

Verwandte Themen