gpt4 book ai didi

ios - NSPredicate使用另一个数组过滤数组的数组

转载 作者:行者123 更新时间:2023-12-01 18:58:00 25 4
gpt4 key购买 nike

我想使用另一个数组(这些数组的子集)来过滤数组的数组。

   NSMutableArray* y = [NSMutableArray arrayWithObjects:@"A",@"B", nil];

NSArray *array = @[
@[@"A", @"B", @"C"],
@[@"A", @"B", @"E"],
@[@"A", @"B", @"D"],
@[@"B", @"C", @"D"],
];

我想过滤第二个数组,使其包含其中同时具有“A”和“B”的项目。

我使用了谓词:
NSPredicate *intersectPredicate =[NSPredicate predicateWithFormat:@"ANY SELF IN %@", y];
NSArray *intersect = [array filteredArrayUsingPredicate:intersectPredicate];

但这给了我第二个数组中的所有项目。我认为ANY / SOME正在考虑我想要的(A && B)。我尝试了所有,但没有任何帮助。

最佳答案

任何/一些都会给出包含A或B的所有数组。

全部将给出所有只有2个元素A和B的数组。

通过定义一个自定义谓词,我们可以获得所需的结果:

NSPredicate *intersectPredicate = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
for (NSString *str in y) {
if (![evaluatedObject containsObject:str]) {
return false;
}
}

return true;
}];
NSArray *intersect = [array filteredArrayUsingPredicate:intersectPredicate];

关于ios - NSPredicate使用另一个数组过滤数组的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25338289/

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