gpt4 book ai didi

ios - 如何从 NSDictionary 的 NSArray 获取 Unique NSDictionary

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:34:14 25 4
gpt4 key购买 nike

我在 iOS 9 上使用 Objective C。

我想从 NSDictionaryNSArray 获取 Unique NSDictionaries

我有 NNSDictionaries,如下所示(例如):

staff     Description   Price
***** *********** *****
01 'some string' 9.99
05 'some string' 8.80
01 'some string' 7.45
01 'some string' 4.21

如何从这些中实现我的目标?

唯一参数是staff

我想为每个对象获取 Unique NSArray,如:

{
@[
@[@{@"staff":01,@"description":@"some string",@"price":9.88},
@{@"staff":01,@"description":@"some string",@"price":7.45},
@{@"staff":01,@"description":@"some string",@"price":4.21}
],
@[@{@"staff":05,@"description":@"some string",@"price":8.80}
],
];
}

这个问题可能看起来像是 this 的重复问题,但有一点不同,我不想以任何方式对数据进行排序。其次,我想要那些 key->staff 相似的字典的数组。

最佳答案

感谢'Mr.T'提供this链接。
深入了解该链接后,我设法实现了我的目标

    //Step:-1 prepare your inputArray having NSDictionaries

//Step:-2 now,check that how many unique values avilable in inputArray
NSMutableSet* _info = [[NSMutableSet alloc]init];
[inputArray enumerateObjectsUsingBlock:^(NSDictionary* info, NSUInteger index, BOOL* stop){
[_info addObject:[info valueForKey:@"staff"]];
}];
NSLog(@"Unique Value:->\n%@",[_info allObjects]);

//Step:-3 now,run loop till count of unique objects and use NSPredicate to get filtered array like bellow,
// you can use for..in.. OR for(int i=0;.....) OR Other but i preffer block
[_info.allObjects enumerateObjectsUsingBlock:^(NSString* staff, NSUInteger index, BOOL* stop){
NSMutableDictionary* info = [[NSMutableDictionary alloc]init];
[info setValue:staff forKey:@"table"];
NSArray *filtered = [inputArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(staff == %@)", staff]];
[info setValue:[NSMutableArray arrayWithArray:filtered] forKey:@"data"];

NSLog(@"\nFiltered Array:->\n%@",info);
}];

顺便说一句,非常感谢大家关注我的问题。

关于ios - 如何从 NSDictionary 的 NSArray 获取 Unique NSDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34678283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com