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:
returns boolean value indicating whether sequence contains element satisfies given predicate.
returns first index in element of collection satisfies given predicate.
Comments
Post a Comment