
JavaScript
Почему таккой код не работает?
Есть цикл, который должен перебирать строку. Почему он не работает?


В усовиях замени
output[i] =
на
output +=
и всё заработает приёмная переменная у тебя состоит всего из одного пробела куда ты пихаешь эта тебе не массив
или сделай так вторую строку замени на
output=[];
а после цикла напиши такую строку
output=output.join("");
и всё заработает!
А вообще эта задача решается в одну строчку ниже пример
js ="JavaScript is Awesome!";
output=js.replace(/e/g,'3').replace(/o/g,'0').replace(/a/g,'4').replace(/i/g,'1');
console.log(output);//J4v4Scr1pt 1s Aw3s0m3!
или так
js ="JavaScript is Awesome!";
output=js;
['e3','o0','a4','i1'].forEach(a=>output=output.replace(RegExp(a[0],"g"),a[1]));
console.log(output);
⚤
output[i] =
на
output +=
и всё заработает приёмная переменная у тебя состоит всего из одного пробела куда ты пихаешь эта тебе не массив
или сделай так вторую строку замени на
output=[];
а после цикла напиши такую строку
output=output.join("");
и всё заработает!
А вообще эта задача решается в одну строчку ниже пример
js ="JavaScript is Awesome!";
output=js.replace(/e/g,'3').replace(/o/g,'0').replace(/a/g,'4').replace(/i/g,'1');
console.log(output);//J4v4Scr1pt 1s Aw3s0m3!
или так
js ="JavaScript is Awesome!";
output=js;
['e3','o0','a4','i1'].forEach(a=>output=output.replace(RegExp(a[0],"g"),a[1]));
console.log(output);
⚤
Потому что инструкция output[i] = - полный бред. Если хотите в этом оутпуте получить j4v4scr1pt 1s 0w3s0m3, то хотя бы уж так нужно было делать
var js = 'javascript is owesome';
var output = '';
for (var i = 0; i < js.length; i++) {
if (js[i]=='e') {
output += '3';
}
else if (js[i]=='o') {
output += '0';
}
else if (js[i]=='a') {
output += '4';
}
else if (js[i]=='i') {
output +='1';
}
else {
output += js[i];
}
};
console.log(output);
var js = 'javascript is owesome';
var output = '';
for (var i = 0; i < js.length; i++) {
if (js[i]=='e') {
output += '3';
}
else if (js[i]=='o') {
output += '0';
}
else if (js[i]=='a') {
output += '4';
}
else if (js[i]=='i') {
output +='1';
}
else {
output += js[i];
}
};
console.log(output);
Олег Дроздов
так попроще будет :)
js ="JavaScript is Awesome!";
output=js.replace(/e/g,'3').replace(/o/g,'0').replace(/a/g,'4').replace(/i/g,'1');
console.log(output);//J4v4Scr1pt 1s Aw3s0m3!
⚤
js ="JavaScript is Awesome!";
output=js.replace(/e/g,'3').replace(/o/g,'0').replace(/a/g,'4').replace(/i/g,'1');
console.log(output);//J4v4Scr1pt 1s Aw3s0m3!
⚤
В интернете написано
Содержимое строки в JavaScript нельзя изменять. Нельзя взять символ посередине и заменить его. Как только строка создана – она такая навсегда.
Можно лишь создать целиком новую строку и присвоить в переменную вместо старой.
Содержимое строки в JavaScript нельзя изменять. Нельзя взять символ посередине и заменить его. Как только строка создана – она такая навсегда.
Можно лишь создать целиком новую строку и присвоить в переменную вместо старой.
может ты так хотел?
var js = 'abcdefg';
var output;
for (i=0;i<js.length;i++) {
if (js[i] == 'b') {output = 2} else
if (js[i] == 'd') {output = 4} else
if (js[i] == 'e') {output = 6} else
output = 0;
console.log(output);
}
var js = 'abcdefg';
var output;
for (i=0;i<js.length;i++) {
if (js[i] == 'b') {output = 2} else
if (js[i] == 'd') {output = 4} else
if (js[i] == 'e') {output = 6} else
output = 0;
console.log(output);
}
Дмитрий Пучков
Нет, суть в том, что из строки "javascript is awesome" должно вернуться "j4v4scr1pt 1s 4w3s0m3"
// У нас есть строка..
let string = "JavaScript is Awesome!";
// ..которую необходимо разбить на массив элементов,
// то есть у каждой буквы теперь свой индекс.
let arr = string.split( '' );
// Смотрим и убеждаемся, что это массив.
console.log( arr ); // Array(22)
// Теперь проходимся по всему массиву функцией map,
// сверяя каждую букву и заменяя на нужную.
// Результатом будет новый массив.
let arr2 = arr.map(( el ) => {
if( el === 'e' ) el = '3';
if( el === 'o' ) el = '0';
if( el === 'a' ) el = '4';
if( el === 'i' ) el = '1';
return el;
});
// Для того, чтобы отобразить результат как строку,
// "склеиваем" наш массив.
console.log( arr2.join( '' )); // J4v4Scr1pt 1s Aw3s0m3!
// 1. Разбираем
// 2. Проводим действия
// 3. Собираем обратно
Код тут: https://jsfiddle.net/xhazt6my/
Код тут: https://jsfiddle.net/xhazt6my/
Код тут: https://jsfiddle.net/xhazt6my/
Твой случай:
Ты не конкатенируешь строки.
let string = "JavaScript is Awesome!",
output = '';
for( let i = 0; i < string.length; i++ ) {
if( string[ i ] === 'e' ) output += '3';
else if( string[ i ] === 'o' ) output += '0';
else if( string[ i ] === 'a' ) output += '4';
else if( string[ i ] === 'i' ) output += '1';
else output += string[ i ];
}
alert( output ); // J4v4Scr1pt 1s Aw3s0m3!
Код тут: https://jsfiddle.net/457dye0s/
Код тут: https://jsfiddle.net/457dye0s/
Код тут: https://jsfiddle.net/457dye0s/
let string = "JavaScript is Awesome!";
// ..которую необходимо разбить на массив элементов,
// то есть у каждой буквы теперь свой индекс.
let arr = string.split( '' );
// Смотрим и убеждаемся, что это массив.
console.log( arr ); // Array(22)
// Теперь проходимся по всему массиву функцией map,
// сверяя каждую букву и заменяя на нужную.
// Результатом будет новый массив.
let arr2 = arr.map(( el ) => {
if( el === 'e' ) el = '3';
if( el === 'o' ) el = '0';
if( el === 'a' ) el = '4';
if( el === 'i' ) el = '1';
return el;
});
// Для того, чтобы отобразить результат как строку,
// "склеиваем" наш массив.
console.log( arr2.join( '' )); // J4v4Scr1pt 1s Aw3s0m3!
// 1. Разбираем
// 2. Проводим действия
// 3. Собираем обратно
Код тут: https://jsfiddle.net/xhazt6my/
Код тут: https://jsfiddle.net/xhazt6my/
Код тут: https://jsfiddle.net/xhazt6my/
Твой случай:
Ты не конкатенируешь строки.
let string = "JavaScript is Awesome!",
output = '';
for( let i = 0; i < string.length; i++ ) {
if( string[ i ] === 'e' ) output += '3';
else if( string[ i ] === 'o' ) output += '0';
else if( string[ i ] === 'a' ) output += '4';
else if( string[ i ] === 'i' ) output += '1';
else output += string[ i ];
}
alert( output ); // J4v4Scr1pt 1s Aw3s0m3!
Код тут: https://jsfiddle.net/457dye0s/
Код тут: https://jsfiddle.net/457dye0s/
Код тут: https://jsfiddle.net/457dye0s/
Руслан Мухамедьяров
К чему такие сложности ?
js ="JavaScript is Awesome!";
output=js.replace(/e/g,'3').replace(/o/g,'0').replace(/a/g,'4').replace(/i/g,'1');
console.log(output);//J4v4Scr1pt 1s Aw3s0m3!
⚤
js ="JavaScript is Awesome!";
output=js.replace(/e/g,'3').replace(/o/g,'0').replace(/a/g,'4').replace(/i/g,'1');
console.log(output);//J4v4Scr1pt 1s Aw3s0m3!
⚤
Похожие вопросы
- Почему js код отрабатывает 1 раз?
- Не могу понять почему код на js не работает.
- Проверьте 2 кода ((( пожалуйста и ткните носом на ошибку. В общем 1 код работает частично, а второй вообще не работает. JS
- Гляньте код пожалуйста? Он работает, но мне кажется так не пишут. Да и по default что то не хочет работать код.
- Посмотрите пожалуйста задание. Всё работает. Тем не менее, интересно услышать замечания по коду.
- Кто сможет объяснить мне как работает этот код
- Как работает код?
- Почему большинство прогеров не ставят точку с запятой в конце строчек кода при разработке приложений на js?
- Как работают операции "Или" (дизъюнкция), которые в коде пишутся как "||" "&&"?
- Помогите разобраться в логике кода (замыкания)
js ="JavaScript is Awesome!";
output=['e3','o0','a4','i1'].reduce((a,b)=>a=a.replace(RegExp(b[0],"g"),b[1]),js);
console.log(output);
//J4v4Scr1pt 1s Aw3s0m3!
⚤