ingrese la descripción de la imagen aquí
ingrese la descripción de la imagen aquí
¿Cómo hacer observar el comportamiento de la palabra Mayúscula?
código fuente: enter code here
document.getElementById("btnReverse").onclick = function () { reverse(); }; String.prototype.replaceAt = function (index, replacement) { if (index >= this.length) { return this.valueOf(); } return this.substring(0, index) + replacement + this.substring(index + 1); }; function reverseWord(word) { let wordLength = word.length; let reversedWord = word; for (let j = 0; j < wordLength / 2; j++) { let temp = reversedWord[j]; reversedWord = reversedWord.replaceAt(j, word[wordLength - 1 - j]); reversedWord = reversedWord.replaceAt(wordLength - 1 - j, temp); } return reversedWord; } function reverse() { let text = document.getElementById("text").value; let splittedText = text.split(" "); let reversedWords = []; for (let i = 0; i < splittedText.length; i++) { let word = splittedText[i]; let reversedWord = reverseWord(word); reversedWords.push(reversedWord); } document.getElementById("demo").innerHTML = reversedWords.join(" "); }`enter code here`Cambie la siguiente línea del método reverse() y use textContent en lugar de value.
let text = document.getElementById("texto").textContent;
document.getElementById("btnReverse").onclick = function () { reverse(); }; String.prototype.replaceAt = function (index, replacement) { if (index >= this.length) { return this.valueOf(); } return this.substring(0, index) + replacement + this.substring(index + 1); }; function reverseWord(word) { let wordLength = word.length; let reversedWord = word; for (let j = 0; j < wordLength / 2; j++) { let temp = reversedWord[j]; let rightChar = word[wordLength - 1 - j]; if(j === 0 && wordLength > 1 && word[j].toUpperCase() === word[j]) { temp = temp.toLowerCase(); rightChar = rightChar.toUpperCase(); } reversedWord = reversedWord.replaceAt(j, rightChar); reversedWord = reversedWord.replaceAt(wordLength - 1 - j, temp); } return reversedWord; } function reverse() { let text = document.getElementById("text").textContent; let splittedText = text.split(" "); let reversedWords = []; for (let i = 0; i < splittedText.length; i++) { let word = splittedText[i]; let reversedWord = reverseWord(word); reversedWords.push(reversedWord); } document.getElementById("demo").innerHTML = reversedWords.join(" "); } <html> <head></head> <body> <div> <button id="btnReverse">Reverse</button> <div id="text">I am A Great human</div> <div id="demo"></div> </div> </body> </html>Esta función reescribe una palabra invertida:
function reCapitalize(word) { // Check if last letter is an uppercase // If so, return the word with first letter converted to capital if (word[word.length - 1] === word[word.length - 1].toUpperCase()) return word[0].toUpperCase() + word.toLowerCase().substring(1, word.length); // return word unchanged return word; }Así que tu función inversa será así:
function reverseWord(word) { let wordLength = word.length; let reversedWord = word; for (let j = 0; j < wordLength / 2; j++) { let temp = reversedWord[j]; reversedWord = reversedWord.replaceAt(j, word[wordLength - 1 - j]); reversedWord = reversedWord.replaceAt(wordLength - 1 - j, temp); } return reCapitalize(reversedWord); }