如果你有一个带有三个 NSDictionary 的 NSMutableArray,如下所示:
{
name:steve, age:40;
name:steve, age:23;
name:paul, age:19
}
我如何把它变成一个只有两个字符串 { steve, paul } 的数组。换句话说,来自原始 NSMutableArray 的唯一名称?有没有办法使用块来做到这一点?
如果你有一个带有三个 NSDictionary 的 NSMutableArray,如下所示:
{
name:steve, age:40;
name:steve, age:23;
name:paul, age:19
}
我如何把它变成一个只有两个字符串 { steve, paul } 的数组。换句话说,来自原始 NSMutableArray 的唯一名称?有没有办法使用块来做到这一点?
与其他答案类似,您也可以这样做:
NSSet * names = [NSSet setWithArray:[myArray valueForKey:@"name"]];
或者
NSArray * names = [myArray valueForKeyPath:@"@distinctUnionOfObjects.name"];
类似的东西:
NSMutableSet* names = [[NSMutableSet alloc] init];
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)) {
[names addObject:[obj valueForKey:@"name"]];
}];
[names allObjects] 将返回一个唯一名称的 NSArray