Мое решение задачи "Рекорды по прыжкам в длину"

Коллеги, добрый день!

Посмотрите мое решение, готов выслушать критику и полезные замечания.
Использовал только теорию, пройденную в курсе, без использования дополнительных функций обработки массивов.
Алгоритм универсальный, работает для произвольного числа n-попыток (только не добавил проверку, что n больше самого количества прыжков).
При создании алгоритма исходил из предположения, что количество проходов по массиву с результатами прыжков при сортировке больше, чем n-проходов по массиву при поиске наилучшего значения.

var qualificationDistance = 200;
var attempts = [120, 150, 160, 201, 203, 180, 202];
var qualified = false;
var averageBest = 0;

// попытка получить универсальный алгоритм нахождения n-наилучших попыток
var bestAttempts = []; // массив с наилучшими попытками
var bestCount = 3; // количество наилучших попыток
var bestIds = []; // порядковые номера наилучших попыток
var isExistRes; // используем при проверке уже записанных наилучших попытков

// инициализируем массив с наилучшими попытками
for (var i = 0; i < bestCount; i += 1) {
bestAttempts[i] = 0;
}

for (var i = 0; i < bestCount; i += 1) {
for (var j = 0; j < attempts.length; j += 1) {
// находим наилучшую попытку
if (attempts[j] > bestAttempts[i]) {
// и проверяем, что мы ее еще не записывали в массив
isExistRes = false;
for (k = 0; k < bestCount; k += 1) {
if (bestIds[k] === j) {
isExistRes = true;
}
}

// сохраняем наилучшую попытку и ее порядковый номер
if (!isExistRes) {
bestAttempts[i] = attempts[j];
bestIds[i] = j;
}
}
}
}

// вычисляем средний результат
for (var i = 0; i < bestCount; i += 1) {
averageBest += bestAttempts[i];
}
averageBest /= bestCount;
// взводим флаг прохождения квалификации
if (averageBest > qualificationDistance) {
qualified = true;
}

console.log(bestAttempts, bestIds, qualified);