如何迭代对象及其键的字典

时间:2017-10-05 21:18:44

标签: swift firebase firebase-realtime-database

我正在使用Swift和Firebase。我目前正将我的firebase快照对象存储在全局字典中。我们的想法是根据一个或多个键的值过滤这些对象。

例如,pendingFilter()可能会返回“pending”键等于true的所有对象,并忽略其余对象。

数组创建如下:

var array = [NSDictionary]()

所有对象都附加为AnyObject。

我当前的字典看起来像这样:

[{
    accepted = false;
    cancelled = false;
    id = "1";
    pending = true;

}, {
    accepted = false;
    cancelled = false;
    id = "2";
    pending = true;

}, {
    accepted = true;
    cancelled = false;
    id = "3";
    pending = false;
}]

在我的过滤器功能中,我知道我可以使用for-in迭代每个项目,但是如何进行过程,然后按对象本身的键值进行过滤?有一个首选的Swifty方式吗?我知道项目中的(关键,值),但这似乎严格地针对字典而不是对象。

感谢您的帮助......

1 个答案:

答案 0 :(得分:3)

您可以使用filter仅将字典pending的值设置为true的字典。

var pendingFilter: [NSDictionary] {
    return array.filter { $0.value(forKey: "pending") as? Bool == true }
}