Надо каждое чётное число заменить на "Х". Пишу условие и программа виснет. - Компьютерные вопросы

Вопрос Надо каждое чётное число заменить на "Х". Пишу условие и программа виснет.

Регистрация
22 Ноя 2013
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
Что не так делаю?

function func_9(a, b){
let i = a,
res = ';
while(i <= b){
res += `${i} `;
i++;
if(i % 2 === 0){
i = "X";
}
}
return res;
}
console.log(`Task_9: ${func_9(1, 10)}`);

В дебагере не могу прогнать цикл, что бы посмотреть как он работает, ибо зависает
----------------------------------------------------
код здесь:
codepen.io/vvv7220/pen/ExxxWjZ?editors=0011
 
Регистрация
12 Апр 2013
Сообщения
79
Репутация
0
Спасибо
0
Монет
0
Можно поточнее, что должна возвращать функция? P.S. а зависает, потому что уходит в бесконечный цикл, т. к. вы присваиваете в i строку, и потом сравниваете строку с числом. Даже не так. Я вообще не понимаю что происходит. "X" это вообще что? Строка "X", какое-то иное заданное число? res += `${i} `; вообще не понятно что за зверь. если вы используете какие-то препроцессоры то нужно указывать. P.P.S. Короче, вот функция, которые возвращает строку состоящую из идущих подряд цифр от a до b, где каждое четное число заменено на "X" function replaceEvenInt(a,b){ let i = a, res = ""; while(i <= b){ if(!(i % 2)){ res += "X"; } else { res += i; } i++; } return res; }
 
Регистрация
22 Июн 2013
Сообщения
90
Репутация
0
Спасибо
1
Монет
0
У меня после ваших стараний вообще весь ноут наглухо завис, минут 40 только и делал что перезагружал ))) Если вам нужно 1X3X5X7X9X, то вот так вроде работает function func (a,b) { res = '; while (a <= b) { if (a % 2 == 0) { res += "X"; } else {res += a.toString();} a++; } return res } console.log(func(1,10));
 
Регистрация
10 Сен 2013
Сообщения
82
Репутация
0
Спасибо
0
Монет
0
Ты переменной "i" типа integer присваиваешь значение X типа char. Фу таким быть, это джава, а не пайтон.
 
Регистрация
17 Авг 2013
Сообщения
81
Репутация
0
Спасибо
0
Монет
0
function func_9(a, b){ let str = ""; for( a; a <= b; a++ ){ str += a % 2? a : " X "; } return str.trim(); } console.log("Task_9: " + func_9(1, 10)); // Task_9: 1 X 3 X 5 X 7 X 9 X ______ То же, что и while( a <= b ){ str += a % 2? a : " X "; a++; }
 
Сверху Снизу