Что не так делаю?
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
JavaScript
Надо каждое чётное число заменить на "Х". Пишу условие и программа виснет.
Можно поточнее, что должна возвращать функция?
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;
}
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;
}
У меня после ваших стараний вообще весь ноут наглухо завис, минут 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));
Если вам нужно 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));
Андрей Хренов
)))))
Нельзя менять значение переменной цикла внутри цикла
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++;
}
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++;
}
Ты переменной "i" типа integer присваиваешь значение X типа char. Фу таким быть, это джава, а не пайтон.
Сергей Зуев
Это JS, здесь неявно определение типа переменных.
т. е. "2" == 2 => true
т. е. "2" == 2 => true
Емое, навертел-то, говнокодер
Андрей Хренов
Думаешь так стоит попробовать? Пожалуй твой ответ самый конструктивный здесь. И код расписан очень понятно. Спасибо
Похожие вопросы
- Если в массиве меньше 2-х чисел, вернуть строку, сообщающую, что чисел недостаточно.
- Как сделать покороче чтоб каждый раз не писать documents.write так как когда дается число 100 и более это трудно.
- Чем можно заменить eval() в javascript? Нужно получить итоговое число в строке "2 * 10 + 5 / 4"
- вопрос про JS, рандом чисел в %
- Не могу понять выражение Упростите на JS условие if(i-- && xx + yy <= 4 ), когда все переменные- числа!
- Как вычислять простые числа?
- Факториал числа JS
- Раскидать чётные и нечётные по разным массивам. Сделал, но может можно как то покороче сделать?
- Для чего в javascript технологии объектно ориентированного программирования? Неужели на нем пишут серьезные программы?
- Найти положительное число n
Так должно быть. Четные заменены на "X"