像这样编译一个数组:
var MyArray: [String:[String:[Int]]] = [
"xx": ["x1": [1, 2, 3], "x2": [4, 5, 6], "x3": [7, 8, 9]],
"yy": ["y1": [10, 11, 12], "y2": [13, 14, 15], "y3": [16, 17, 18]]
]
我想检查一下是否" xx"在MyArray
。试过这个,但它有一个错误:
if [MyArray].contains("xx"{
}
但是它可以自动修正它
if [MyArray].contains(where: "xx"{
}
又一次有错, 任何想法??
答案 0 :(得分:1)
我建议您使用可选绑定:
var MyArray: [String:[String:[Int]]] = [
"xx": ["x1": [1, 2, 3], "x2": [4, 5, 6], "x3": [7, 8, 9]],
"yy": ["y1": [10, 11, 12], "y2": [13, 14, 15], "y3": [16, 17, 18]]
]
if let outerDict = MyArray["xx"] {
for entry in outerDict {
print(entry)
}
}
输出:
("x1", [1, 2, 3])
("x3", [7, 8, 9])
("x2", [4, 5, 6])
答案 1 :(得分:1)
由于你的“数组”是一个字典,并且你确定它的一个键(键"xx"
)是否存在,一种非常简单的方法就是试图访问那个字典的特别关键。
var myDictionary: [String:[String:[Int]]] = [
"xx": ["x1": [1, 2, 3], "x2": [4, 5, 6], "x3": [7, 8, 9]],
"yy": ["y1": [10, 11, 12], "y2": [13, 14, 15], "y3": [16, 17, 18]]
]
if let _ = myDictionary["xx"] {
print("Dictionary contains a key 'xx'")
}
W.r.t。您尝试使用contains
应用于字典:另一种方法是明确检查key
的集合是否为字典contains
您的特定密钥:
if myDictionary.keys.contains("xx") {
print("Dictionary contains a key 'xx'")
}
或者,直接使用每个字典项的key
元组中的(key, element)
来检查字典中是否存在给定的key
:
if myDictionary.contains(where: { $0.key == "xx" }) {
print("Dictionary contains a key 'xx'")
}
答案 2 :(得分:0)
首先,MyArray是一个字典而不是一个数组,实际上它是一个字典,其中key是字符串,该值也是一个字典,其键是一个字符串,其值是整数数组。
因此,如果您想检查字典是否包含某些键,您可以在if条件中执行此操作:
if let value = MyArray["xx"] {
// do some stuff
}
答案 3 :(得分:0)
如果您不需要值,则采用最快捷方式:
if let _ = MyArray["xx"]{
print("something or do something")
}
如果您需要值,请执行以下操作:
guard let someValue = MyArray["xx"]{
return} else{
someFunc(someValue)
someProperty = someValue
}