2015-08-14 48 views
0

订单我有NSMutableArray存储的词典需要被整理出....排序取决于存在于另一个阵列字段....重新排列的NSMutableArray根据从第二阵列

实施例:

阵列1 ==>红色-1,白色-2,绿色-3,阵列2 ==>绿色,红色, 白色

结果应该是数组3 =>绿色-3,红色-1,白色-2 。(项目 数组1根据数组2中的顺序排序)。

+0

你为什么不建立它在双'for'?对于数组2中的每个元素,您可以在数组1中找到相应的元素,然后将其添加到数组3中。 – Templar

+0

是啊....我做到了,但有些如何感觉它不是最好的方式......可能有很好的方法。 ...很简单,然后有两个for循环....如果苹果提供任何东西....即使苹果的东西,我试图找出,但没有发现任何... – user2813740

+0

另外,你可以用一个单一的数组替换字典,然后您可以即时访问每个元素的值。 – Templar

回答

0

如果你的第一个数组是这样的:[{@"Red": @1}, {@"White": 2}, {@"Green": 3}],接下来的办法应该工作:

NSArray* array3 = [array1 sortedArrayUsingComparator:^NSComparisonResult(NSDictionary* dict1, NSDictionary* dict2) { 
     NSUInteger idx1 = [array2 indexOfObject:[dict1 allKeys][0]]; 
     NSUInteger idx2 = [array2 indexOfObject:[dict2 allKeys][0]]; 

     if(idx1 < idx2) return NSOrderedAscending; 
     if(idx2 > idx1) return NSOrderedDescending; 
     return NSOrderedSame; 
    }];