我试图在按下按钮时获取2D数组中单词的索引(即单词在数组中的位置)。我要查找的词是所按下按钮的标题。
@IBAction func buttonPressed(_ sender: UIButton) {
let buttonSelected = sender.currentTitle!
let findIndex = myArray.firstIndex(of: englishButtonSelected)!
}
构建代码时出现此错误:
无法将“字符串”类型的值转换为预期的参数类型“ [字符串]”
常量“ buttonSelected”是一个字符串。
我是新手,现在仍在学习。任何帮助深表感谢!谢谢!
使用Xcode 11.4
答案 0 :(得分:0)
您快到了。 firstIndex
将返回给定元素出现的第一个索引。由于myArray
是[[String]]
(二维数组),因此期望您放入[String]
,因为每个元素都是[String]
。例如:
let myArray = [["A", "B"], ["C"], ["D", "E"]]
let index = myArray.firstIndex(of: ["D", "E"]) // index = 2
如果要获取按钮标题的“绝对”索引(在上面的示例中,这将对应于“ C”为2或“ E”为4的索引),则可以使用:>
myArray.flatMap { $0 }.firstIndex(of: buttonTitle)
.flatMap
将2D数组折叠为常规数组。如果要在其自己的子数组中找到按钮标题的索引,则必须遍历2D数组,并检查按钮标题的每个子数组的索引。
答案 1 :(得分:0)
在进行一些谷歌搜索之后,我发现了如何找到想要的输出。这给了我2D数组[[] [?]格式的确切索引!
for i in 0..<myArray.count {
for j in 0..<myArray[i].count {
if myArray[i][j] == buttonSelected {
print (i, j)
}
}
}