Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

224
Visualizações
TypeError no capturado: no se pueden leer las propiedades de undefined (leyendo 'toUpperCase')

He estado tratando de convertir la entrada de texto al caso adecuado y al caso de la oración. El caso apropiado parece funcionar bien, pero el caso de la oración arroja Uncaught TypeError: Cannot read properties of undefined (reading 'toUpperCase') . Revisé esta publicación y apliqué algunos cambios, pero no tuve suerte. Sorprendentemente, .toUpperCase() funciona bien en la función de mayúsculas y minúsculas adecuada.

 document.getElementById("proper-case").addEventListener("click", function() { let words = document.querySelector("textarea").value.split(" "); let string = ""; for (let i = 0; i < words.length; i++) { string += words[i][0].toUpperCase() + words[i].substring(1).toLowerCase(); if (i != words.length - 1) { string += " "; } } document.querySelector("textarea").value = string; }); document.getElementById("sentence-case").addEventListener("click", function() { let sentences = document.querySelector("textarea").value.split("."); let string = ""; console.log(sentences); for (let i = 0; i <= sentences.length - 1; i++) { if (i == 0) { string += sentences[i][0].toUpperCase() + sentences[i].substring(1).toLowerCase() + "."; } else { string += " " + sentences[i][1].toUpperCase() + sentences[i].substring(2).toLowerCase() + "."; } } console.log(string) document.querySelector("textarea").value = string; })
 <textarea></textarea> <button id="proper-case">Proper Case</button> <button id="sentence-case">Sentence Case</button>

¿Puede alguien decirme cuál es el problema aquí?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

La operación .split('.') devuelve una cadena vacía en su último elemento de la matriz, por lo tanto, las sentences[i][1] no están definidas. Para resolver esto, puede verificar si las oraciones [i] no son una cadena vacía.

Además, puede usar String.trimLeft() en el caso else.

about 4 years ago · Juan Pablo Isaza Relatório

0

Esta línea provoca el error.

string += " " + sentences[i][1].toUpperCase() + sentences[i].substring(2).toLowerCase() + ".";

su división separa la cuerda en un punto. si no hay nada después del punto, también hay un elemento vacío en la matriz. y es por eso que el [0] arroja un error. porque una cadena lerrer no tiene un primer carácter. para corregir el error, primero debe detectar este caso.

por ejemplo

 document.getElementById("sentence-case").addEventListener("click", function() { let sentences = document.querySelector("textarea").value.split("."); let string = ""; console.log('=>', sentences); for (let i = 0; i <= sentences.length - 1; i++) { if (i == 0) { string += sentences[i][0].toUpperCase() + sentences[i].substring(1).toLowerCase() + "."; } else { console.log(sentences[i][1]); let s1 = '' let s3 = '' if(typeof sentences[i][0] !== "undefined") { s1 = " " + sentences[i][0].toUpperCase(); s3 = "."; } string += s1 + sentences[i].substring(2).toLowerCase() + s3; } } console.log(string) document.querySelector("textarea").value = string; })
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda