Search code examples
iosswiftnsarraynsdictionary

Check NSArray contain NSDictionary key in Swift?


I have array of NSDictionary and i want check particular NSDictionary "key" present in NSArray or not.

I tried

if let val = dict["key"] {
    if let x = val {
        println(x)
    } else {
        println("value is nil")
    }
} else {
    println("key is not present in dict")
}

and

let arrayOfKeys = dictionary.allKeys
if (arrayOfKeys.containsObject(yourKey)) {

}
else {
}

but this is for individual array object. Also

if ([[dictionary allKeys] containsObject:key]) {
    // contains key
}

This method for individual NSDictionary not for NSArray.

Also

if readArray.contains(["A":1]) {                  ALToastView.toastInView(UIApplication.sharedApplication().keyWindow, withText: "Already added")
      }else{
           readArray.append(["A":0]
       }

This code will add again same key in array if change value for key "A"

Ex. My array contain dictionary ["A":1] and i want to check key "A" is present or not? How do i check any key present in Array? Do i need to iterate array? Thanks in advance.


Solution

  • Refer following example :

    var array = [[String:Any]]()
    
    array.append(["key1":"value1"])
    array.append(["key2":"value2"])
    array.append(["key3":"value3"])
    array.append(["key4":"value4"])
    array.append(["key5":"value5"])
    
    let key = "key5"
    
    if let index = (array.indexOf { (dict) -> Bool in
        dict[key] != nil
    })
    {
        print("Key Found at = \(index) ")
    } else {
        print("Key not Found")
    }