I have an array of dictionaries. I would like to extract an array with all the elements of one particular key of the dictionaries in the original array. Can this be done without enumeration?
Yes, use the NSArray -valueForKey:
method.
NSArray *extracted = [sourceArray valueForKey:@"a key"];
Yes, just use Key-Value Coding to ask for the values of the key:
NSArray* names = [NSArray arrayWithObjects:
[NSDictionary dictionaryWithObjectsAndKeys:
@"Joe",@"firstname",
@"Bloggs",@"surname",
nil],
[NSDictionary dictionaryWithObjectsAndKeys:
@"Simon",@"firstname",
@"Templar",@"surname",
nil],
[NSDictionary dictionaryWithObjectsAndKeys:
@"Amelia",@"firstname",
@"Pond",@"surname",
nil],
nil];
//use KVC to get the names
NSArray* firstNames = [names valueForKey:@"firstname"];
NSLog(@"first names: %@",firstNames);
来源:https://stackoverflow.com/questions/2680403/from-array-of-dictionaries-make-array-containing-values-of-one-key