我有一個NSMutableArray *arr1
與價值觀:如何使用另一個NSMutableArray的值對一個NSMutableArray的值進行排序?
{(B,abc) (E,pqr) (C,xyz)}
和另一NSMutableArray *arr2
與
{(B) (C) (E)}
。
現在我想分類arr1
使用arr2
值,以便arr1
變成{(B,abc) (C,xyz) (E,pqr)}
。我怎樣才能做到這一點?
我有一個NSMutableArray *arr1
與價值觀:如何使用另一個NSMutableArray的值對一個NSMutableArray的值進行排序?
{(B,abc) (E,pqr) (C,xyz)}
和另一NSMutableArray *arr2
與
{(B) (C) (E)}
。
現在我想分類arr1
使用arr2
值,以便arr1
變成{(B,abc) (C,xyz) (E,pqr)}
。我怎樣才能做到這一點?
試試這個,
NSMutableArray *unsortedArray = [NSMutableArray arrayWithObjects:[NSArray arrayWithObjects:@"B",@"abc", nil],[NSArray arrayWithObjects:@"E",@"pqr", nil],[NSArray arrayWithObjects:@"C",@"xyz", nil],nil];
NSArray *guideArray = [NSArray arrayWithObjects:@"B",@"C",@"E", nil];
for(int i=0; i< [guideArray count];i++)
{
for(int j=0; j< [unsortedArray count];j++)
{
if([[unsortedArray objectAtIndex:j] containsObject:[guideArray objectAtIndex:i]])
{
[unsortedArray exchangeObjectAtIndex:j withObjectAtIndex:i];
break;
}
}
}
NSLog(@"%@",unsortedArray);
我測試了這一點,併爲我工作。希望這可以幫助你。
謝謝,它適用於我.. – Shaunak 2013-03-05 09:23:30
不,這,請,爲什麼要重新發明輪子? – 2013-03-05 09:55:59
所以,看來你有一個數組,數組的數組:
NSArray *sorter = @[@"B", @"C", @"E"];
NSMutableArray *sortee = [@[
@[@"B", @"abc"],
@[@"E", @"pqr"],
@[@"C", @"xyz"]
] mutableCopy];
[sortee sortUsingComparator:^(id o1, id o2) {
NSString *s1 = [o1 objectAtIndex:0];
NSString *s2 = [o2 objectAtIndex:0];
NSInteger idx1 = [sorter indexOfObject:s1];
NSInteger idx2 = [sorter indexOfObject:s2];
return idx1 - idx2;
}];
[WAT?](https://www.destroyallsoftware.com/talks/wat)第一個數組是否包含數組?字典?或者是其他東西? – 2013-03-05 05:37:00
arr1包含3個數組,每個數值都大於 – Shaunak 2013-03-05 05:38:29