Реализовать функцию которая принимает строку в качестве аргумента и возвращает новую строку
Реализовать функцию , которая принимает строку в качестве аргумента и возвращает новую строку, в которой каждое слово, которое содержит 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);