かなり基本的な質問ですが、Javascript で解決する方法の例が見つからないようです。
「n」を表す数値を渡すと、配列内で n 番目に小さい数値の位置を返す関数を作成したいと思います。
たとえば、私がした場合:
array = [5,6,1,1,1,8]
n = 3
location = nth_smallest(array, n)
3 番目に小さい数字は 1 であるため、場所は 4 になりますが、その数字の最初のいくつかの重複をスキップしたいと思います。
n 番目に小さい数値の位置を見つける一般的な解決策は、次のようにすることです。
array = [5,6,1,1,1,8]
n = 3
nth_lowest = array.slice(0).sort()[n]
location = $.inArray(nth_lowest, array)
ただし、問題は、3 番目に小さい数値が 1 であることを知っているが、inArray 関数は重複を気にしないため、常に場所が 2 になることです。
おそらくソート機能を使用せずに、これを行う方法はありますか? 多くの処理を必要とするようで、これは非常に頻繁に実行される機能です。