如何找到数组数组中存在的整数?

时间:2016-12-21 10:47:06

标签: arrays swift

我的结果为true以获取以下代码

var elements1:[Int] = [10, 20, 30, 40, 50]

if elements1.contains (50) {

    print("true")

}

如果if condition中有{50},我在查找true以下内容时会遇到问题,以便将结果设为elements2

var elements2:[[Int]] = [[10], [20, 30], [40, 50]]

3 个答案:

答案 0 :(得分:6)

您可以使用joined()将嵌套数组展平为一个,并在连接的数组上应用contains搜索:

let elements2 = [[10], [20, 30], [40, 50]]
if elements2.joined().contains(50) {
    print("Contains 50!")
}

请注意,您无需在上面列出elements2的类型注释,因为类型是推断的(到[[Int]])。

另一种方法是使用contains检查50元素的每个内部数组,并在任何内部数组包含值时继续:

if elements2.map({ $0.contains(50) }).contains(true) {
    print("Contains 50!")
}

或者,使用reduce将内部数组折叠为布尔值,检查每个内部数组中是否包含50(与上面的数组非常相似)

if elements2.reduce(false, { $0 || $1.contains(50) }) {
    print("Contains 50!")
}

答案 1 :(得分:5)

我可能会使用joined来简化任务,但您可以轻松使用嵌套的contains

var elements2:[[Int]] = [[10], [20, 30], [40, 50]]

if elements2.contains(where: { $0.contains(50) }) {
    print("true")
}

答案 2 :(得分:1)

您可以使用flatMap

let newArray = elements2.flatMap { $0 }
if newArray.contains(50) { 
    print("true") 
}