Реализовать функцию которая принимает строку в качестве аргумента и возвращает новую строку

Реализовать функцию , которая принимает строку в качестве аргумента и возвращает новую строку, в которой каждое слово, которое содержит 5 или больше символов, написана наоборот. написал вот так, сам элемент переворачивает, но в массиве не работает

function reverseString(text) {
    return text.split("").reverse().join("");
  }
  const str = "This is another test";
  let arr = str.split(" ");
    for (elem of arr) {
    if (elem.length >= 5) {
      reverseString(elem);
    }
  }

Ответы (2 шт):

Автор решения: Pr0gramm1st

Должно быть примерно так, как я понимаю:

function reverseString(text) {
  let arr = text.split(" ");

  for (let i = 0; i < arr.length; i++) {
    if (arr[i].length >= 5) {
      arr[i] = arr[i].split("").reverse().join("");
    }
  }
  return arr;
}
const str = "This is another test";
console.log(reverseString(str));

→ Ссылка
Автор решения: Grundy

Все операции со строками возвращают новую строку.

Поэтому недостаточно просто применить их. Еще нужно куда-то сохранить результат.

В данном случае результат вызова reverseString никуда не присваивается и теряется.

Для решения достаточно присвоить результат по нужному индексу в массиве, например так:

function reverseString(text) {
  return text.split("").reverse().join("");
}
const str = "This is another test";
let arr = str.split(" ");
for ([index, elem] of arr.entries()) {
  if (elem.length >= 5) {
    arr[index] = reverseString(elem);
  }
}

console.log(arr);

→ Ссылка