计算 NSArray 中 NSDictionarys 中的值

Posted

技术标签:

【中文标题】计算 NSArray 中 NSDictionarys 中的值【英文标题】:Count values in NSDictionarys within an NSArray 【发布时间】:2011-08-24 06:51:56 【问题描述】:

我有一个充满 NSDictionary 对象的 NSArray。每个字典对象都有一个 key:value:

颜色:红色

在其他键中...颜色可能是用户生成的多种颜色之一。

我希望能够提取每种颜色并计算每种颜色的数量,所以:

红色:3 个字典 黄色:4 个字典

等等...这到底是怎么可能的?只需遍历字典,直到找到唯一的颜色,然后再次使用 NSPredicate 在数组中搜索该颜色,冲洗,重复吗?

【问题讨论】:

【参考方案1】:

您可以只维护一个字典,将颜色映射到具有该颜色的字典数量。例如:

NSMutableDictionary *counts = [NSMutableDictionary dictionary];
for (NSDictionary *dict in myArray) 
    NSString *color = [dict objectForKey:@"color"];
    NSNumber *val = [counts objectForKey:color];
    val = [NSNumber numberWithUnsignedInteger:1+[val unsignedIntegerValue]];
    [counts setObject:val forKey:color];

【讨论】:

谢谢。我想在 UITableView 中显示结果,这就是为什么我希望它们在 Array 中...我想我可以将每个键作为字典迁移到 NSArray 索引中...

以上是关于计算 NSArray 中 NSDictionarys 中的值的主要内容,如果未能解决你的问题,请参考以下文章

从 NSDictionary 对象的 NSArray 中,如何获取唯一的 NSArray

NSDictionary 的 NSArray - 当数组中只有一个字典而不是一个对象的数组时返回 NSDictionary

如何从 NSDictionary 中获取 NSArray 名称?

计算 NSArray 中 NSDictionarys 中的值

NSDictionary 的 NSArray 过滤和 NSDictionary

将包含 NSArray 的 NSDictionary 转换为 JSON