1

我有一堆充满数字的 NSArray。无论如何,我可以以某种方式获取一个特定的数字,特别是:

数组中第三大的数字,还是数组中的第 24 大数字?

但我不想只抓取数字,我还需要引用它在数组中的索引,如果可以在过程中保留的话。

谢谢。

4

2 回答 2

4

数组中第三大的数字,还是数组中的第 24 大数字?

创建数组的临时副本并按升序对其进行排序。
获取 index3-1或处的数字24-1

我还需要引用它在数组中的索引

现在使用indexOfObject:orindexOfObjectIdenticalTo:来获取实际的索引。

于 2012-06-24T12:58:40.553 回答
0

numbers从我的答案中的排序数组开始从数组中获取前 10 个最高数字?

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> ]

于 2012-06-24T13:49:48.540 回答