在Swift中,如何查看Value是否在Array中,并从数组中获取值?

时间:2016-03-25 21:32:34

标签: swift swift2

搜索Google时出现的结果; find()不再存在。

Swift 2.0中是否有替换find()?不是我确定这是否会奏效。

我正在寻找一些基本的“从数组中获取值”的东西,而不仅仅是它的索引号。喜欢在数组中搜索特定字符串,以查看它是否存在。

2 个答案:

答案 0 :(得分:5)

您要查找的方法是contains。虽然indexOf会告诉您数值是否在数组中,但专门执行您要求的方法的方法是contains方法。

示例:

let array = ["Lions", "Tigers", "Bears"]
array.contains("Lions") // true
array.contains("Oh My") // false

答案 1 :(得分:1)

好吧,从昨天开始,我很高兴你问过,并没有被困几个小时。

一种方法是使用.contains()

这可以通过返回布尔值(true或false)来告诉您数组中是否存在该值。

另一种查看值是否在数组中,但也可以使用.indexOf()从数组中获取特定值的方法是使用nil

如果搜索的值不在数组中,则返回contains(),否则将返回相关值的索引号。如果您只是想检查它是否存在,那么var fruitArray: [String] = ["Apple", "Banana", "Kiwi"] 是可行的方法,但是如果您确实需要Value,那么只要获得索引号就可以获得该值的一小步。

所以,假设我们有一个像这样的数组:

.contains()

我们可以测试一下,看看字符串中是否出现“Apple”值。 fruitArray.contains("Apple") 使用点表示法,您可以在其后面的括号中找到您要查找的值。

.indexOf()

fruitArray.indexOf("Apple") 的作用相同,如下:

.contains()

因此,如果我们只想做一些简单的事情,例如获取“如果值在数组中”的真/假响应,我们可以使用var fruitArray: [String] = ["Apple", "Banana", "Kiwi"] fruitArray.contains("Apple") //returns true

true

当然,这不允许我们实际获得价值 - 例如,如果我们尝试打印它,我们只会获得falsevar fruitArray: [String] = ["Apple", "Banana", "Kiwi"] print (fruitArray.contains("Apple")) //prints true

.indexOf()

这是indexOf()派上用场的地方。使用array[index number],您将返回数组的索引号,而不是布尔值true / false。因此,您可以使用您收到的数组索引号执行您喜欢的操作。喜欢展示它的价值。我们可以像在其他任何数组中一样使用var fruitArray: [String] = ["Apple", "Banana", "Kiwi"] if let fruitIndex = fruitArray.indexOf("Banana") { print(fruitArray[fruitIndex]) } //prints ‘Banana’

.contains()

或者我们可以这样做,我们可以使用var fruitArray: [String] = ["Apple", "Banana", "Kiwi"] var berryArray: [String] = ["Blueberry", "Strawberry", "Banana"] var sneakyFruit = "Banana" if fruitArray.contains(sneakyFruit) && berryArray.contains(sneakyFruit) { print(sneakyFruit) } //prints ‘Banana’ 在两个不同的数组中搜索相同的值:

.contains()

您可以在函数中使用func fruitExists (name: String) -> Bool { return fruitArray.contains(name) } fruitExists("Kiwi") //‘true’ fruitExists("Rhubarb") //‘false’ ,就像检查输入的值是否在数组中一样简单:

.contains()

或者使用类似这样的函数 - .indexOf()检查值是否存在,func shopListEdit (name: String) { if fruitArray.contains(name) { let fruitIndex = fruitArray.indexOf(name) fruitArray[fruitIndex!] = ("\(name) and Custard") } } shopListEdit("Banana") fruitArray //["Apple", "Banana and Custard", "Kiwi"] shopListEdit("Rhubarb") fruitArray //["Apple", "Banana and Custard", "Kiwi"] 然后编辑它:

android:onClick="showTimePickerDialog"

你从昨天开始,我坚持不懈地记住,毫无疑问,这个问题太愚蠢了,不值得回答。