0

次の値を持つ NSMutableArray があります。

NSMutableArray *array = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5", nil];

これは私のForループです:

for(int i=0; i<30; i++)
{
    //here I want to compare each object from above array with value of i from for loop. and add the further output. e.g.
    if(i== object from array)
    {
          //do this
    }
}

実際には、配列に 5 つのオブジェクトまたは値しかないので、i の各値を NSMutableArray の各オブジェクトまたは値と比較するにはどうすればよいでしょうか。

4

6 に答える 6

3

それで、あなたが正しく理解しているなら、配列内の各オブジェクトを配列内の他のすべてのオブジェクトと比較したいですか? これはテストではなく例であり、最適化が必要な場合があります。

NSMutableArray *array = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5", nil];

for(NSInteger i = 0; i < [array count]; i++) {
    for(NSInteger j = 0; j < [array count]; j++) {
        if ( i == j) {
           // No need to check if its the same object.
           continue;
        }

        NSString *stringI = [array objectAtIndex:i];
        NSString *stringJ = [array objectAtIndex:j];

        if ([stringI isEqualToString:stringJ) {
           // Do something.
        } 
    }
}
于 2012-05-31T08:43:33.383 に答える
2

containsObjectIOSの機能と を信頼する場合は、次のようにしますindexOfObject

NSMutableArray *array = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5", nil];

for(int i = 0; i< 30; i++)
{
    if([array containsObject:[NSString stringWithFormat:@"%i",i]])
    {
        //array contains  "i" item,  
        //and we can know it's location this way:
        int foundArrayItemId = [array indexOfObject:[NSString stringWithFormat:@"%i",i]];
    }
}
于 2012-05-31T08:47:22.980 に答える
1

ネストされたループを比較に使用するだけです

for(i = 0; i <= [array count];i++)
    {
        for(j=0; j<=[mutableArrya count]; j++)
            {
                 //Do comparison
            }
    }

私はこれがあなたを助けると思う

ハッピーコーディング:)楽しんでください:)

于 2012-05-31T08:45:42.737 に答える
0
NSMutableArray *array = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5", nil];

for(int i=0;i<30;i++)

    {
      NSString str= [NSString stringWithFormat:@"%i",i];
        if([array containsObject:str])
        {
          //do this
        }
    }
于 2012-05-31T08:50:46.307 に答える
0

このコードを書きます:

NSMutableArray *arrCount = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"11",@"12",@"13",@"14",@"15",@"16",@"17",@"18",@"19",@"20",@"21",@"22",@"23",@"24",@"25",@"26",@"27",@"28",@"29",@"30", nil];
NSMutableArray *array = [[NSMutableArray alloc]initWithObjects:@"21",@"12",@"23",@"14",@"25", nil];

    for (NSString *strComapre in array)
    {
        NSLog(@"%@",strComapre);
        if ([arrCount containsObject:strComapre]) 
        {
             NSLog(@"Compare");
        }
        else
        {
             NSLog(@"Not Compare");
        }
    }
于 2012-05-31T09:17:21.217 に答える
0

NSArray には isEqualToArray メソッドがあります。次のように使用できませんか。

[array1 isEqualToArray:array2]

于 2012-10-16T18:19:35.637 に答える