检查whethere数组包含元素
问题描述:
我不知道为什么以下不工作:检查whethere数组包含元素
var tmp = [AnyObject]()
for (key, value) in dictionary{
if (tmp.contains(value)){
}
tmp.append(value as AnyObject)
}
看起来像没有.contain一个阵列的方法。它强迫我用一些其他的方法tmp.contains(where: <#T##(AnyObject) throws -> Bool#>)
,但我不想给。我只是想检查一个数组是否包含该特定对象!
答
()方法,我建议切换从AnyObject
到AnyHashable
(当然,如果可能的话),因为AnyHashable
是Equatable。你的代码看起来像这样:
var tmp = [AnyHashable]()
var dictionary: [Int: Any] = [1: "Hello1", 2: "Hello2", 3: "Hello3", 4: false, 5: 289 ]
for (key, value) in dictionary{
if tmp.contains(value as! AnyHashable){
continue
}
tmp.append(value as! AnyHashable)
}
希望它有帮助!
字典是如何定义的?它包含什么样的值?你必须使用AnyObject吗? –
@MartinR函数定义为func isInvertible(inDict dictionary:[String:Int]) - > Bool,因此dictionary包含Int作为值。 –
那么最简单的解决办法是定义数组为'无功TMP = [INT]()' –