Javascript для цикла с условием

Я читаю курс ханской академии по алгоритмам. Я нахожусь на https://www.khanacademy.org/computing/computer-science/algorithms/insertion-sort/p/challenge-implement-insert.

После вызова функции вставки: значение * и элементы, которые ранее были в массиве [0], в массив [rightIndex], должны быть отсортированы в порядке возрастания и сохранены в элементах из массива [0] в массив [rightIndex+1]. Чтобы сделать это, функция вставки должна освободить место для значения, перемещая элементы, которые больше значения вправо. Он должен начинаться с rightIndex и останавливаться, когда находит элемент, значение которого меньше или равно значению, или когда он достигает начала массива. Как только функция освободит место для значения, она может записать значение в массив.

Моя попытка:

var insert = function(array, rightIndex, value) {

var i = rightIndex;
    for( array[i]> key ; 0; i-- ) {

        array[i + 1] = array[i]; 
   } 
   array[i]= value;

};

var array = [3, 5, 7, 11, 13, 2, 9, 6];

insert(array, 4, 2);
println("Array after inserting 2:  " + array);

Они специально говорят, что хотят условие внутри цикла for, но я не знаю, как это сделать.

1 ответ

Решение
 var insert = function(array, rightIndex, value) {
    // for( initial_value; condition; change the value for next iteration)
    // && - returns true only when both are true.
     for(var j = rightIndex; j >= 0 && array[j] > value; j--) {
        array[j + 1] = array[j];
    }
    array[j + 1] = value; 

};
Другие вопросы по тегам