ios - Loop one more time in For Enumerated -


i have code below that's looping through key string in dictionary. until want search string not on dictionary. when search string that's not in dictionary, code should have been doing 1 more loop fall in else of if index != patternfromdatabase.count, won't since loop finished enumerated count of patternfromdatabase. how can for-loop 1 last time after enumerated finished since cant write patternfromdatabase.enumerated() + 1.

do have suggestion? or should modify code little bit don't have face problem outcome purpose? thank much. if need more explanation i'll happy explain code you.

for (index, key) in patternfromdatabase.enumerated() {              let starttimeforbitap = date()              print("i: \(index), db: \(patternfromdatabase.count), key: \(key)")              if index != patternfromdatabase.count {                  if algorithm().searchstringwithbitap(key, pattern: insertedpattern) == -1 {                     continue                  } else {                      let endtimeforbitap = date().timeintervalsince(starttimeforbitap)                     bitaprunningtime.text = "\(converttimetoms(time: endtimeforbitap)) ms"                     print("bitap found: \(endtimeforbitap)")                      let bitaptextresult = pattern[key]                     print(bitaptextresult ?? "")                     bitaptextlabel.text = bitaptextresult                     bitappatternlabel.text = key                     break                 }              } else {                  let endtimeforbitap = date().timeintervalsince(starttimeforbitap)                 bitaptextlabel.text = "pattern not found"                 bitappatternlabel.text = "pattern not found"                  bitaprunningtime.text = "\(converttimetoms(time: endtimeforbitap)) ms"                 print("bitap not found: \(endtimeforbitap)")             }         } 

should modify code little bit don't have face problem outcome purpose?

yes. there standard library methods check if array contains element given properties. in case:

if patternfromdatabase.contains(where: { key in algorithm().searchstringwithbitap(key, pattern: insertedpattern) != -1 }) {     print("found:", key) } else {     print("not found") } 

or, if index of found element relevant:

if let idx = patternfromdatabase.index(where: { key in algorithm().searchstringwithbitap(key, pattern: insertedpattern) != -1 }) {     print("found at:", idx) } else {     print("not found") } 

references:

contains(where:)

returns boolean value indicating whether sequence contains element satisfies given predicate.

index(where:)

returns first index in element of collection satisfies given predicate.


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -