Es gibt eine Reihe von verschiedenen Möglichkeiten, dies zu tun, aber hier sind ein paar, die ich interessant fand:
Mit flatMap()
o n indices
:
let result: [String] = stringArray.indices.flatMap {
if $0 % 2 != 0 { return stringArray[$0] }
else { return nil }
}
Hinweis:result
Bedürfnisse definiert werden als ein [String]
sonst der Compiler nicht weiß, welche Version von flatMap()
zu verwenden.
Oder, wenn Sie das ursprüngliche Array anstelle ändern möchten:
stringArray.indices.reverse().forEach {
if $0 % 2 == 0 { stringArray.removeAtIndex($0) }
}
In diesem Fall müssen Sie zuerst reverse()
auf indices
nennen, so dass sie in umgekehrter Reihenfolge aufgezählt sind. Andernfalls werden Sie versuchen, einen Index, der nicht mehr existiert, zu entfernen, bis Sie das Ende des Arrays erreicht haben.
Danke! Ich habe gelernt, aufzuzählen(). –