var usersByDay = [4, 2, 1, 3];
console.log(usersByDay);
var currentIndex = 0;
var minValue = usersByDay[currentIndex];
Для наглядности добавлю остальные куски кода. Сам я тоже новичек в JS, но попробую объяснить.
В переменную var minValue = usersByDay[currentIndex];
мы записываем значение элемента массива равное числу 4.
В цикле отсчёт начинаем не с 0-го элемента массива, а с 1-го элемента массива: var j = currentIndex + 1.
Начинаем цикл с 1-го элемента, а не с 0-го, потому что далее в цикле в условии мы будем сравнивать 1-ый элемент массива с 0-ым: if (usersByDay[j] < minValue), т.е. 2 < 4. Ведь, в переменную minValue у нас записано значение 0-го элемента массива равное 4, а в usersByDay[j] вместо j подставляется число 1, а значение 1-го элмемнта массива это число 2.
Итак, мы сравнили 1-ый и 0-ой элементы массива: 2 < 4. Т.к условие верное, то теперь в переменную minValue мы записываем значение usersByDay[j], т.е. 2.
Затем, в переменную swap мы сохраняем число 4, т.е. 0-ой элемент массива, чтобы его не потерять, т.к. число 4 нам пригодится, чтобы подставить его вместо 1-го элемента массива, в то время как, в будущем 1-ый элемент массива встанет на место 0-го элемента массива.
Далее идёт вот этот шаг: usersByDay[currentIndex] = minValue;
Здесь 0-ому элементу массива присваивается минимальное значение, что мы получили в результате сравнения выше в коде. Т.е 2.
А здесь - usersByDay[j] = swap; Мы текущему элементу массива, т.е. 1-ому элементу, присваиваем ранее сохранённое значение 4.
Таким образом, мы меняем местами 0 и 1 элементы массива. Вроде как-то так))
Я тоже новичок в JS. На предыдущем шаге искали минимальный элемент. Там все понятно. Здесь повторяем алгоритм и добавляем: Если текущий элемент меньше minValue , то записываем его в minValue , а затем меняем местами значение первого элемента и текущего.
Зачем усложнять код переменной swap? Насколько я понял, чтобы поменять местами два элемента массива, нужно один из них сохранить в переменную. Она уже есть:
Цитата 3. Итак, мы сравнили 1-ый и 0-ой элементы массива: 2 < 4. Т.к условие верное, то теперь в переменную minValue мы записываем значение usersByDay[j], т.е. 2.
usersByDay[j] = usersByDay[currentIndex]; // первому элементу присвоили значение 4
usersByDay[currentIndex] = minValue; // нулевому элементу присвоили значение 2