Не могу понять почему revOddWord("Dear Santa, give me a new iPhone") не работает коректно
Есть строка, переверните все слова нечетной длины. Слова четной длины не изменяются. revOddWord("Egg") ➞ "ggE" revOddWord ("It is false") ➞ "It is eslaf" revOddWord ("Dear Santa, give me a new iPhone”)➞ "Dear atnaS, give me a wen iPhone. "
function revOddWord(str) {
const punctuationMarks = [",", ".", "!", "?", ";", ":", "-",];
const words = str.split(" ");
for (let i = 0; i < words.length; i++) {
if (words[i].length % 2 !== 0) {
words[i] = words[i].split("").reverse().join("");
}
if (punctuationMarks.includes(words[i])) {
str = words.slice(0, i) + words.slice(i + 1);
i--;
}
}
return words.join(" ");
return punctuationMarks.join(",");
}
console.log(revOddWord("Egg"));
console.log(revOddWord("It is false"));
console.log(revOddWord("Dear Santa, give me a new iPhone")); ```
Источник: Stack Overflow на русском