Не могу понять почему не работает replace
, задача с freecodecamp(дана фраза, в словах которой, буквы из первой половины алфавита нужно заменить на буквы второй половины алфавита соответственно т.е А=N, B=O и т.д), все решения связанные с этой задачей были через charCodeAt()
,можно ли вообще решить эту задачу через replace
?
function rot13(str) {
const alfabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
const half1 = alfabet.split('');
// ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M"]
const half2 = half1.splice(0,13);
// ["N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
const myStr = str.split(' ');
for(let myShifrWords of myStr){
for(let i=0; i<myShifrWords.length;i++){
let e = myShifrWords[i];
function repl(e){
if(half1.indexOf(e)!==-1){
return half1[half2.indexOf(e)];
} else if(half2.indexOf(e)!==-1){
return half2[half1.indexOf(e)]
}
}
return myShifrWords.replace(e, repl);
}
}
}
rot13("SERR CVMMN!")
function rot13(str) {
var alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var map = Object.create(null);
for (var q = 0; q < alphabet.length; ++q) {
map[alphabet[q]] = alphabet[(q + 13) % alphabet.length];
}
return str.replace(/./g, m => map[m] || m);
}
console.log(rot13("SERR CVMMN!"));
А можно ещё и так.
function replace(str) {
return str.replace(/[A-Z]/gi, function(letter) {
var c = letter.charCodeAt(0);
return String.fromCharCode((c - 65 >= 13) ? c - 13 : c + 13);
});
}
console.log(replace("SERR CVMMN!"));
Короткое описание: берём букву из нужного слова, смотрим в какой она части алфавита (в первой или второй), если первая - по коду ASCII таблицы прибавляем 13 (кол-во букв в половине алфавита) и получаем "параллельную" букву, и наоборот, если буква из второй части алфавита.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Помогите сделать SQL запрос на выборку id, отсортированных по дате от 0101
Есть БД на локалхосте (запускаю через xampp, mysql)В базе присутствует кириллица
Стал не нужен блок поиска на сайте, пришлось убрать, а меню съехало в право и не хочет центрироватьсяПодскажите в чем проблема пожалуйста
Есть код для парсинга и внесения некоторых изменений в выводимый текст: