Работа со строками js
Дано слово. Если его длина нечетная, то удалить среднюю букву, в противном случае — две средних буквы.
мой код:
function o4() {
let str = 'Слово';
let arr = str.split(' ');
let a = str.length
let s = a / 2;
if (a % 2 == 1) {
for (i = s; i < a; i++)
str[i] = str[i + 1];
} else
for (j = 1; j <= 2; j++) {
for (i = s - 1; i < a; i++)
str[i] = str[i + 1];
}
document.getElementById('result4').innerHTML = arr;
}
Выводится почему-то без изменений
Ответы (3 шт):
Автор решения: Lothric
→ Ссылка
Так вы и не делаете никаких изменений с переменной arr:
let arr = str.split(' ');
...
document.getElementById('result4').innerHTML = arr;
Автор решения: Andrey Semykin
→ Ссылка
function o4(string) {
let str = string.split('');
let a = str.length;
console.log('вход:', str, a);
let s = Math.floor(a / 2);
if (a % 2 == 1) {
for (i = s; i < a; i++)
str[i] = str[i + 1];
} else
for (j = 1; j <= 2; j++) {
for (i = s - 1; i < a; i++)
str[i] = str[i + 1];
}
return str.join('');
}
let res = o4('heXhe');
console.log ('результат:', res, res.length);
А строковые методы по условиям задачи нельзя использовать? С str.slice() все бы выглядело проще.
Автор решения: Pavel Nazarian
→ Ссылка
function o4(str) {
let a = str.length;
let s = Math.ceil(a/2);
let result = (a % 2 == 1) ?
str.slice(0,s-1) + str.slice(s)
: str.slice(0,s-1) + str.slice(s+1);
document.getElementById('result4').innerText = result;
}
o4('слово');
<div id="result4"></div>