检查3D数组中是否存在元素Swift

范希克里希纳

我有一个viewDidLoad像这样实例化的数组var bookingsArray : [[String]] = []

我以这种方式向其中添加元素:

var configuration: [String] = []
            configuration.append(textfieldFacility.text!)
            configuration.append((pickSlotTF.text?.components(separatedBy: " ")[0])!)
            configuration.append((pickSlotTF.text?.components(separatedBy: " ")[1])!)
            bookingsArray.append(configuration as [String])

bookingsArray 好像 :

[["A", "20-08-2017", "14:00"], ["B", "20-08-2017", "14:00"]]

在向中添加新元素时bookingsArray,我想检查数组中是否已存在新元素。在多维数组的情况下该如何做?

瓦迪安

首先,如果要使用唯一对象,请使用Set

如果无法做到这一点,我强烈建议您使用自定义结构,Equatable而不是嵌套数组,例如

struct Booking : Equatable {
    let facilty : String
    let date : String
    let time : String

    static func ==(lhs : Booking, rhs : Booking) -> Bool {
        return lhs.facilty == rhs.facilty && lhs.date == rhs.date && lhs.time == rhs.time
    }
}

然后将数组声明为

var bookingsArray = [Booking]()

并创建一个对象

let dateArray = pickSlotTF.text!.components(separatedBy: " ")
let configuration = Booking(facility: textfieldFacility.text!,
                            date: dateArray[0],
                            time = dateArray[1])
bookingsArray.append(configuration)

巨大的好处是您可以轻松检查

if bookingsArray.contains(item)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章