我试图通过搜索列表找到一个项目索引。有人知道怎么做吗?
我看到有一张单子。StartIndex和list。EndIndex,但我想要类似python的list.index("text")。
我试图通过搜索列表找到一个项目索引。有人知道怎么做吗?
我看到有一张单子。StartIndex和list。EndIndex,但我想要类似python的list.index("text")。
当前回答
如果你还在使用Swift 1.x
然后尝试,
let testArray = ["A","B","C"]
let indexOfA = find(testArray, "A")
let indexOfB = find(testArray, "B")
let indexOfC = find(testArray, "C")
其他回答
您还可以使用函数库Dollar在数组上执行indexOf,例如http://www.dollarswift.org/#indexof-indexof
$.indexOf([1, 2, 3, 1, 2, 3], value: 2)
=> 1
斯威夫特2.1
var array = ["0","1","2","3"]
if let index = array.indexOf("1") {
array.removeAtIndex(index)
}
print(array) // ["0","2","3"]
斯威夫特3
var array = ["0","1","2","3"]
if let index = array.index(of: "1") {
array.remove(at: index)
}
array.remove(at: 1)
以防有人遇到这种问题
Cannot invoke initializer for type 'Int' with an argument list of type '(Array<Element>.Index?)'
一定要这么做
extension Int {
var toInt: Int {
return self
}
}
then
guard let finalIndex = index?.toInt else {
return false
}
斯威夫特4
假设你想从名为cardButtons的数组中存储一个数字到cardNumber中,你可以这样做:
let cardNumber = cardButtons.index(of: sender)
Sender是按钮的名称
在Swift 4/5中,使用“firstIndex”查找索引。
let index = array.firstIndex{$0 == value}