Если в строке больше 3 элементов тогда заменять на букву "К"
Всех приветствую, такая задачка
Написать программу запрашивающая строку. Удалить из строки последние 2 элемента. Заменить в строке буквы "р" на "к", если их больше 3, иначе заменить их на "в" Моя программа не реагирует на условие больше и выводит всегда переменную less, кто-нибудь может сказать почему? Заранее благодарю
let str = prompt("Введите строку");
let newStr = str.slice(0, -2);
if (newStr.indexOf("р") < 3) {
let less = newStr.replaceAll('р', 'к');
alert("Буквы 'р' в строке меньше трёх: " + less)
}else {
let more = newStr.replaceAll('р', 'в');
alert("Буквы 'р' в строке больше трёх: " + more)
}
Ответы (2 шт):
Автор решения: Citizen_39895
→ Ссылка
Для поиска вхождений буквы используйте match с флагом g, который будет искать все вхождения буквы в строке
let str = prompt("Введите строку");
let newStr = str.slice(0, -2);
let newStrMatches = newStr.match(/р/g);
if (newStrMatches === null || newStrMatches.length < 3) {
let less = newStr.replaceAll('р', 'к');
alert("Буквы 'р' в строке меньше трёх: " + less)
} else {
let more = newStr.replaceAll('р', 'в');
alert("Буквы 'р' в строке больше трёх: " + more)
}
Автор решения: Евгений Колмак
→ Ссылка
const str = 'Друзья добро пожаловать в этот чудный мир';
const modificationString = str => {
let count = 0;
let result = '';
for (const symbol of str) {
if (symbol === "р"){
count ++;
}
}
for (let i = 0; i < str.length - 2; i++) {
if(count > 3 && str[i] === "р") {
result += "в";
} else if (count <=3 && str[i] === "р") {
result += "к";
} else {
result += str[i];
}
}
return result;
}
console.log(modificationString(str));