我有一个带字典的数组示例:
[{
"CATEGORYNAME" = "name0";
"CATEGORYSUBID" = 2;
"ID" = 1;
}, {
"CATEGORYNAME" = "name1";
"CATEGORYSUBID" = 2;
"ID" = 2;
}, {
"CATEGORYNAME" = "name2";
"CATEGORYSUBID" = 0;
"ID" = 3;
}]
我曾经在Objective C中过滤它像这样
JSON_data = [[[Global SharedData]Categorys] filteredArrayUsingPredicate:
[NSPredicate predicateWithFormat:@"(CATEGORYSUBID == %@)", Filter]];
我尝试使用阵列过滤器,但没有成功
var JSON_data = Global.SharedData().Categorys
JSON_data = JSON_data.filter( ?????
JSON_data包含我用Printin打印的所有数据
答案 0 :(得分:11)
过滤字典很简单,如下所示。我们会过滤低于30岁的年龄。
var visitors = [["age" : 22], ["age" : 41], ["age" : 23], ["age" : 30]]
var filteredVisitors = visitors.filter({
$0["age"] < 30 //access the value to filter
})
println(filteredVisitors)
//[["age" : 22], ["age" : 23]]
此处有更多信息:Filtering a Swift Array of Dictionaries or Object property
答案 1 :(得分:5)
这看起来只是一个如何翻译的简单问题。您最好的选择是通过WWDC的各种会话,但字面翻译是:
let categories = Global.SharedData().Categorys()
JSON_data = categories.filter({
if let subid = $0["CATEGORYSUBID"] {
return subid == filter
} else {
return false
}
})
如果这不起作用,您需要发布有关Global,SharedData,Categorys和JSON_data的更多信息。