根据第二阵列的顺序重新排列NSMutableArray

时间:2015-08-14 11:49:02

标签: ios ipad nsmutablearray

我有NSMutableArray存储的字典需要整理出来....排序依赖于另一个数组中的字段....

示例:

  

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

     

结果应该是数组3 =>绿色 - 3,红色 - 1,白色 - 2.(项目在   数组1的排序取决于数组2中的顺序。

1 个答案:

答案 0 :(得分: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;
    }];