【发布时间】:2020-03-15 08:58:04
【问题描述】:
我有一个看起来像这样的字典,我想删除 *所有包含 stock = 0 的元素。
variations = {
"64FB5468-96E9-41A4-A779-3FB57FF1296B" = {
price = 10;
sku = 123456;
stock = 1;
volume = 1L;
};
"A5EDB714-3D39-42DA-9A5C-2392D39C3AEB" = {
price = 20;
sku = 254648;
stock = 0;
volume = 2L;
};
"BCA98B51-B058-4ABE-9010-54B080B819FB" = {
price = 30;
sku = 284964;
stock = 0;
volume = 3L;
};
};
我使用了下面的代码,但是,它在展开错误时返回 found nil。如何正确删除变体字典中库存为 0 的字典? kSTOCK 是字符串“stock”的常量
let filterAllItems = self.allItems.filter({(($0.variations as AnyObject)[$0] as! [String:Any])[kSTOCK] as! Int > 0})
【问题讨论】:
-
你的问题是模棱两可的:你想删除一个元素还是所有匹配条件的元素?那个对象是什么类型的,一个结构体(因为
.variations)还是一个字典?带有 UUID 键的字典的声明类型是什么:[String:Int]或[String:Any] -
嗨,很抱歉造成混乱。我想删除所有符合条件的元素。在这种情况下,变体字典中应该只剩下一个字典。带有 UUID 键的字典的类型为 [String:Any]。
标签: ios swift dictionary filter