Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Swift中,如何查看值是否在数组中,并从数组中获取值?_Swift_Swift2 - Fatal编程技术网

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

在Swift中,如何查看值是否在数组中,并从数组中获取值?,swift,swift2,Swift,Swift2,当我搜索谷歌时出现的结果查找()不再存在 那么,Swift 2.0中是否有替代的find()?我不确定这是否有效 我在寻找一些基本的“从数组中获取值”的东西,而不仅仅是它的索引号。喜欢在数组中搜索特定的字符串,看看它是否在那里。好吧,从昨天开始,我很高兴你问了我一个问题,几个小时没有被难倒 一种方法是使用.contains() 这可以通过返回布尔值(true或false)来告诉您数组中是否存在该值 另一种方法是使用.indexOf() 如果搜索的值不在数组中,这将返回nil,或者返回有问题的值的

当我搜索谷歌时出现的结果<代码>查找()不再存在

那么,Swift 2.0中是否有替代的
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()
无法做到这一点,因为它只返回一个布尔值-这对于问题的第一部分来说非常好,并且简化了很多,但是它不会以任何方式返回我可以用来直接从数组中获取值的东西。不过,感谢您提供问题第一部分的替代方案!我想我错了