我需要一种方法来计算对象在任何给定的MutableArray中出现的次数,然后将对象的索引返回到单独的Mutable Array中。我曾尝试过这种方式,但无法解决这个问题。
所以基本上说我有一个包含2,3,3,4,3,5,3的数组当搜索3时,它应该给我两次,4和一个包含1,2的单独数组, 4,6(对象的索引。
我在网站上看到了以下代码,但无法解决如何修改它,有人可以帮助我吗?
int occurrences = 0;
for(NSString *string in array){
occurrences += ([string isEqualToString:@"Apple"]?1:0); //certain object is @"Apple"
}
答案 0 :(得分:6)
int occurrences = 0;
NSMutableArray *indices = [NSMutableArray array];
int i = 0;
for (i = 0; i < [array count]; i++) {
NSString *obj = [array objectAtIndex:i];
if ([obj isEqualToString:@"Apple"]) {
occurrences++;
[indices addObject:[NSNumber numberWithInt:i]];
}
}
您也可以使用occurrences
删除跟踪并执行类似
int occurrences = [indices count];
在for
循环之后。
答案 1 :(得分:0)
id thingYouAreLookingFor;
NSIndexSet *result = [array indexesOfObjectsPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
return [thingYouAreLookingFor equals: obj];
}];
答案 2 :(得分:0)
如果你不介意时间,这是一个简单的方法,它是一个正方形的时间操作。
使用[myMutableArray containsObject:parameter]
返回一个包含元素的数组2的布尔值。