Работа со строками 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>

→ Ссылка