How get objects from one array with same properties of other?

元气小坏坏 提交于 2019-12-08 06:03:44

问题


For example: I have two NSMutableArray. One @[1,2,3,4,5,6,7]. Other have objects like

@[
   @{@idObjectToSearch":1, @"name":@"aaaaa", @"surname": @"bbbbb"}, @{@idObjectToSearch":2, @"name":@"aaaaa", @"surname": @"ccccc"},
    ...
   @{@idObjectToSearch":100, @"name":@"aaaaa", @"surname": @"cccdcd"}
];

So how I could extract needed objects from second array more effective way?


回答1:


You need to use NSPredicate with your second array.

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);
}



回答2:


You can do it like this

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 will contain your sorted data



来源:https://stackoverflow.com/questions/40802570/how-get-objects-from-one-array-with-same-properties-of-other

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!