我有一个数组
public var options = [String]()
// VALUES = John-34 , Mike-56 , Marry-43 etc..
我有功能
public func getIndex(id : Int){
if let index = options.contains("-\(id)".lowercased()) {
selectedIndex = index
print("\(options[index])").
}
}
我希望用我的函数选择索引;
getIndex(id:34) //必须显示John-34
但不起作用?任何的想法? id是唯一的,只能显示1个索引。
答案 0 :(得分:1)
您可以使用index(where:)
。
public func getIndex(id : Int){
if let index = options.index(where: { $0.components(separatedBy: "-").last == "\(id)" }) {
print(index, options[index])
}
}
修改:而不是像这样对字符串进行硬编码,而是制作一个struct
或自定义class
来帮助您。
struct Person {
var id: Int
var name: String
}
现在创建这个结构的数组,之后很容易过滤你的数组。
var options = [Person]()
public func getIndex(id : Int){
if let index = options.index(where: { $0.id == id }) {
print(index, options[index])
}
}