Сортировка выбором - помогите разобраться


#1

Пока только нашла мин значение и меняю его местами с первым елементом цыкла.

var numbers = [3, 5, 15, 6, 2, 1];
console.log(numbers);
var currentIndex = 0;
var minValue = numbers[currentIndex];

for ( var j = currentIndex + 1; j <= numbers.length - 1; j++) {
if (numbers[j] < minValue) {
console.log('Новый минимальный элемент: ’ + numbers[j]);
minValue = numbers[j]
}
}
console.log('Минимальный элемент: ’ + minValue);
var swap = numbers[0];
numbers[0] = numbers[j];
numbers[j] = swap;
console.log(numbers);

Не могу понять что не так. Консоль выдает вот такой массив [, 5, 15, 6, 2, 1, 3] (array)


#2

Лучше пройти курс по массивам (если проходили, то еще раз) в академии. Там как раз подробно показана данная сортировка.

var numbers = [3, 5, 15, 6, 2, 1];

for (var i = 0; i <= numbers.length - 2; i++ ) {

var minValue = numbers[i]; // берем текущий элемент массива и просто сохраняем в minValue

for (var j = i; j <= numbers.length - 1; j++ ) { // далее сравниваем minValue с элементами массива идущими после него
if (numbers[j] < minValue) {
minValue = numbers[j]; // записываем в minValue если numbers[j] меньше (минимальное на данный момент)
var swap = numbers[i]; // чтобы не потерять значение которое было в minValue записываем его во временную переменную

   // далее меняем местами в массиве эти значения
  numbers[i] = minValue;
  numbers[j] = swap;
} 

}
}