我有一堆裝滿數字的NSArrays。有無論如何,我可以以某種方式抓住一個特定的數字,具體如下:從數組中挑出特定數量?
數組中的第三個最高的數字,或數組中的第24個最高的數字?
但我不想只抓住這個數字,我也需要引用它在數組中的索引,如果這可以保留在過程中。
謝謝。
我有一堆裝滿數字的NSArrays。有無論如何,我可以以某種方式抓住一個特定的數字,具體如下:從數組中挑出特定數量?
數組中的第三個最高的數字,或數組中的第24個最高的數字?
但我不想只抓住這個數字,我也需要引用它在數組中的索引,如果這可以保留在過程中。
謝謝。
數組中第三高的數字或數組中的第24個最高數字?
創建數組的臨時副本並對其進行升序排序。
獲取索引號爲3-1
或24-1
的號碼。
我也需要它在陣列中以及
指數的參考現在使用indexOfObject:
或indexOfObjectIdenticalTo:
獲得實際的指數。
從我的答案排序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> ]
。
順便說一句,你可以修改該代碼來查找字典中第一個唯一的最高數字。使用相等性測試(使用否定)來遞增計數而不是跳過,並將數組中的條目添加到數組==10而不是返回條目。很簡單。 –