Дано предложение. Найти слова, содержащие буквы в верхнем регистре. В этих словах заменить маленький буквы на большие, а большие на маленькие
Дано предложение. Найти слова, содержащие буквы в верхнем регистре.
В этих словах заменить маленький буквы на большие, а большие на маленькие.
Например: "this iS a TeSt sTring ЩЭ" Обращаю внимание, что нужно заменить буквы только в тех словах, которые содержат большую букву
Есть код который выполняет это задание, но меняет буквы во всех словах
function flipCase(str) {
var chars = str.toUpperCase().split("");
for (var i = 0; i < chars.length; i++) {
if (chars[i] == str[i])
chars[i] = chars[i].toLowerCase();
}
return chars.join("");
}
var letters = "this iS a TeSt sTring ЩЭ";
var result = flipCase(letters);
console.log(letters);
console.log(result);
Можно переделать его, можно написать новый код, например
var string = "this iS a TeSt sTring ЩЭ"
for (i = 0; i < string.length; i++)
Перебрать все элементы массива, а вот дальше не знаю как писать...
Ответы (1 шт):
Автор решения: Theodore
→ Ссылка
let before = "this iS a TeSt sTring ЩЭ";
let after = "";
let foo = before.split(" ");
for(let i = 0; i < foo.length; i++)
{
if(foo[i] != foo[i].toLowerCase())
{
let bar = foo[i].toUpperCase();
let str = "";
for(let j = 0; j < foo[i].length; j++)
{
if(foo[i].charAt(j) == bar.charAt(j)) str += foo[i].charAt(j).toLowerCase();
else str += foo[i].charAt(j).toUpperCase();
}
after += str + " ";
}
else after += foo[i] + " ";
}
alert(before + "\n" + after);