Помощь с алгоритмом javascript - PullRequest
0 голосов
/ 11 января 2020

Кажется, я не понимаю, почему index возвращает undefined. Цель состоит в том, чтобы разместить число в упорядоченном массиве в правильном положении. Я начинаю с findind позиции, но она возвращается неопределенной.

var arr = [3,7,9,12,16,20,31,43,50,55];
var value;
var i=0;
var index;

value = Number(prompt("Enter a value [3,7,9,12,16,20,31,43,50,55]"));
document.write( arr+"<br>");

while(value > arr[i]){

    if (value < arr[i])
    {
        index=i;
    }
    i++;
}

document.write(index+"<br>");

for (i=arr.length-1 ; i>=index; i--){
     arr[i+1] = arr[i];
}

arr[index]=value;
document.write(arr+"<br>");

1 Ответ

2 голосов
/ 11 января 2020

Например, если вы выберете 9, значение l oop поднимется до 7, и это последнее значение, при котором условие while выполняется. Вложенная проверка никогда не достигается.

Для получения результата вы можете взять l oop и увеличить только индекс, чтобы вывести проверку снаружи, и если значение меньше или равно, возьми указатель.

var arr = [3, 7, 9, 12, 16, 20, 31, 43, 50, 55];
var value;
var i = 0;
var index;

value = Number(prompt("Enter a value [3,7,9,12,16,20,31,43,50,55]"));
console.log(...arr);

while (value > arr[i]) i++;

if (value <= arr[i]) index = i;

console.log(index);
...