如何从一个数组中获取具有相同属性的对象?
例如:我有两个NSMutableArray
。 一个@[1,2,3,4,5,6,7]
。 其他有像
@[ @{@idObjectToSearch":1, @"name":@"aaaaa", @"surname": @"bbbbb"}, @{@idObjectToSearch":2, @"name":@"aaaaa", @"surname": @"ccccc"}, ... @{@idObjectToSearch":100, @"name":@"aaaaa", @"surname": @"cccdcd"} ];
那么如何从第二个数组中提取所需的对象更有效?
您需要在第二个数组中使用NSPredicate
。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"idObjectToSearch IN %@", firstArray]; //In above predicate instead of passing `1` you need to pass object from first array that you want. NSArray *filterArray = [secondArray filteredArrayUsingPredicate:predicate]; //Now access Array objects if (filterArray.count > 0) { NSLog(@"%@",filterArray); }
你可以这样做
NSMutableArray * arrSorted = [NSMutableArray new]; for(int i=0;i<arr.count;i++) { NSPredicate *predicate = [NSPredicate predicateWithFormat:@"idObjectToSearch == %@", firstArray[i]]; NSUInteger index = [secondArray indexOfObjectPassingTest:^(id obj, NSUInteger idx, BOOL *stop) { return [predicate evaluateWithObject:obj]; }]; if (index != NSNotFound) { [arrSorted addObject:[arrM objectAtIndex:index]]; } }
arrSorted
将包含你的sorting数据