在Swift中,如何查看值是否在数组中,并从数组中获取值?
当我搜索谷歌时出现的结果<代码>查找()不再存在 那么,Swift 2.0中是否有替代的在Swift中,如何查看值是否在数组中,并从数组中获取值?,swift,swift2,Swift,Swift2,当我搜索谷歌时出现的结果查找()不再存在 那么,Swift 2.0中是否有替代的find()?我不确定这是否有效 我在寻找一些基本的“从数组中获取值”的东西,而不仅仅是它的索引号。喜欢在数组中搜索特定的字符串,看看它是否在那里。好吧,从昨天开始,我很高兴你问了我一个问题,几个小时没有被难倒 一种方法是使用.contains() 这可以通过返回布尔值(true或false)来告诉您数组中是否存在该值 另一种方法是使用.indexOf() 如果搜索的值不在数组中,这将返回nil,或者返回有问题的值的
find()
?我不确定这是否有效
我在寻找一些基本的“从数组中获取值”的东西,而不仅仅是它的索引号。喜欢在数组中搜索特定的字符串,看看它是否在那里。好吧,从昨天开始,我很高兴你问了我一个问题,几个小时没有被难倒 一种方法是使用
.contains()
这可以通过返回布尔值(true或false)来告诉您数组中是否存在该值
另一种方法是使用.indexOf()
如果搜索的值不在数组中,这将返回nil
,或者返回有问题的值的索引号。如果您只想检查它是否存在,那么contains()
是一种方法,但是如果您确实需要该值,那么在获得索引号后,只需一小步即可获得该值
假设我们有这样一个数组:
var fruitArray: [String] = ["Apple", "Banana", "Kiwi"]
我们可以测试字符串中是否出现值“Apple”.contains()
使用点表示法,将要查找的值放在它后面的括号中
fruitArray.contains("Apple")
和.indexOf()
的工作原理相同,如下所示:
fruitArray.indexOf("Apple")
因此,如果我们只想做一些简单的事情,比如获取“if the value is in the array”(如果值在数组中)的真/假响应,我们可以使用.contains()
:
当然,这不允许我们实际获取值本身——例如,如果我们尝试打印它,我们只会得到true
或false
var fruitArray: [String] = ["Apple", "Banana", "Kiwi"]
print (fruitArray.contains("Apple"))
//prints true
这就是.indexOf()
的用武之地。使用indexOf()
返回数组的索引号,而不是布尔值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"]
好了,昨天的我,坚持下去,记住任何问题都不愚蠢,不值得回答。好吧,昨天的我,我很高兴你问了我,几个小时没有被难倒
一种方法是使用.contains()
这可以通过返回布尔值(true或false)来告诉您数组中是否存在该值
另一种方法是使用.indexOf()
如果搜索的值不在数组中,这将返回nil
,或者返回有问题的值的索引号。如果您只想检查它是否存在,那么contains()
是一种方法,但是如果您确实需要该值,那么在获得索引号后,只需一小步即可获得该值
假设我们有这样一个数组:
var fruitArray: [String] = ["Apple", "Banana", "Kiwi"]
我们可以测试字符串中是否出现值“Apple”.contains()
使用点表示法,将要查找的值放在它后面的括号中
fruitArray.contains("Apple")
和.indexOf()
的工作原理相同,如下所示:
fruitArray.indexOf("Apple")
因此,如果我们只想做一些简单的事情,比如获取“if the value is in the array”(如果值在数组中)的真/假响应,我们可以使用.contains()
:
当然,这不允许我们实际获取值本身——例如,如果我们尝试打印它,我们只会得到true
或false
var fruitArray: [String] = ["Apple", "Banana", "Kiwi"]
print (fruitArray.contains("Apple"))
//prints true
这就是.indexOf()
的用武之地。使用indexOf()
返回数组的索引号,而不是布尔值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"]
好了,从昨天开始的我,坚持下去,记住任何问题都不愚蠢,不值得回答。你正在寻找的方法是包含。虽然indexOf
将告诉您该值是否在数组中,但具体执行您所要求的操作的方法是contains
方法
示例:
let array = ["Lions", "Tigers", "Bears"]
array.contains("Lions") // true
array.contains("Oh My") // false
您要查找的方法是包含。虽然indexOf
将告诉您该值是否在数组中,但具体执行您所要求的操作的方法是contains
方法
示例:
let array = ["Lions", "Tigers", "Bears"]
array.contains("Lions") // true
array.contains("Oh My") // false
实际上,我想:“看看值是否在数组中”和“从数组中获取值”。我已经对它进行了测试,但我认为.contains()
无法做到这一点,因为它只返回一个布尔值-这对于问题的第一部分来说非常好,并且简化了很多,但是它不会以任何方式返回我可以用来直接从数组中获取值的东西。不过,感谢您提供问题第一部分的替代方案!我想我错了