2012-06-24 33 views
1

我有一堆裝滿數字的NSArrays。有無論如何,我可以以某種方式抓住一個特定的數字,具體如下:從數組中挑出特定數量?

數組中的第三個最高的數字,或數組中的第24個最高的數字?

但我不想只抓住這個數字,我也需要引用它在數組中的索引,如果這可以保留在過程中。

謝謝。

回答

4

數組中第三高的數字或數組中的第24個最高數字?

創建數組的臨時副本並對其進行升序排序。
獲取索引號爲3-124-1的號碼。

我也需要它在陣列中以及

指數的參考現在使用indexOfObject:indexOfObjectIdenticalTo:獲得實際的指數。

0

從我的答案排序numbers陣列從這裏開始Getting Top 10 Highest Numbers From Array?

NSUInteger wanted = 24 or anything; 

NSUInteger count = 0; 
NSNumber* previous = nil; 
for (NSDictionary* entry in numbers) 
{ 
    if (wanted == 1) return entry; 

    if (previous == nil) 
    { 
     // first entry 
     previous = entry[@"number"]; 
     ++ count; 

     continue; 
    } 

    // same number? skip it. 
    if (entry[@"number"] isEqualTo: previous) continue; 

    // if we get here, we found a different number we may be interested in 

    ++ count; 

    if (count == wanted) return entry; 
} 

// nothing found 
return nil; 

結果是從以前的問題numbers排列在一條線上。一組表格@[ @"number" : @<number>, @"parent" : <source array> ]

+0

順便說一句,你可以修改該代碼來查找字典中第一個唯一的最高數字。使用相等性測試(使用否定)來遞增計數而不是跳過,並將數組中的條目添加到數組==10而不是返回條目。很簡單。 –