数値で満たされた NSArrays がたくさんあります。とにかく、具体的には次のような特定の番号を取得できる方法はありますか:
配列内で 3 番目に大きい数ですか、それとも配列内で 24 番目に大きい数ですか?
しかし、番号を取得したいだけではありません。プロセスで保持できる場合は、配列内にあったインデックスへの参照も必要です。
ありがとう。
数値で満たされた NSArrays がたくさんあります。とにかく、具体的には次のような特定の番号を取得できる方法はありますか:
配列内で 3 番目に大きい数ですか、それとも配列内で 24 番目に大きい数ですか?
しかし、番号を取得したいだけではありません。プロセスで保持できる場合は、配列内にあったインデックスへの参照も必要です。
ありがとう。
配列内で 3 番目に大きい数ですか、それとも配列内で 24 番目に大きい数ですか?
配列の一時コピーを作成し、昇順で並べ替えます。
index3-1
またはで番号を取得します24-1
。
配列内にあったインデックスへの参照も必要です
indexOfObject:
またはを使用indexOfObjectIdenticalTo:
して、実際のインデックスを取得します。
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> ]
。