Swift - How to get indexes of filtered items of array

后端 未结 9 1155
旧巷少年郎
旧巷少年郎 2020-12-05 18:20
let items: [String] = [\"A\", \"B\", \"A\", \"C\", \"A\", \"D\"]

items.whatFunction(\"A\") // -> [0, 2, 4]
items.whatFunction(\"B\") // -> [1]
9条回答
  •  春和景丽
    2020-12-05 18:34

    In Swift 3 and Swift 4 you can do that:

    let items: [String] = ["A", "B", "A", "C", "A", "D"]
    
    extension Array where Element: Equatable {
    
        func indexes(of item: Element) -> [Int]  {
            return enumerated().compactMap { $0.element == item ? $0.offset : nil }
        }
    }
    
    items.indexes(of: "A")
    

    I hope my answer was helpful

提交回复
热议问题