JavaScript Sintaxis Correcta para la Instrucción If Dentro del Bucle For

Intento de capitalizar las primeras letras de una cadena, es decir, «hola mundo» argumento debe return «Hola Mundo». Sigo recibiendo una cadena en blanco devuelto, creo que hay algunos básicos error de sintaxis con la instrucción if que no puedo entender. Código:

function LetterCapitalize(str) { 
 var output = " "
 for(var i=0; i < str.length; i++);
 if(str.charAt(i - 1) == " ") {
 str.charAt(i).toUpperCase;
 output += str.charAt(i);
 } else {
  output += str.charAt(i);
 }
 return output         
}
LetterCapitalize("hello world")                      
  • toUpperCase es una función. Necesita paréntesis para ser llamado. También, no va a modificar la cadena, pero volverá el uppercased carta.
InformationsquelleAutor DLateef | 2015-02-19

5 Kommentare

  1. 1

    Intente esto:

    function LetterCapitalize(str) { 
         var output = ""+str.charAt(0).toUpperCase();
         for(var i=1; i < str.length; i++){
             if(str.charAt(i - 1) == " ") {
                 output += str.charAt(i).toUpperCase();
             } else {
                 output += str.charAt(i);
             }
         }
        return output;
    }
    console.log(LetterCapitalize("hello world"))

    Explicación:

    • El primer personaje fue convertida a mayúsculas (sin espacio antes)
    • Cuando el personaje fue precedido por un espacio, que se convierte a mayúscula. De lo contrario, seguía siendo exactamente el mismo.
  2. 1

    Parece que su principal problema es que el bucle for de la línea 4 es que falta un corchete de apertura.

    Código de trabajo:

    function letterCapitalize(string) { 
      var output = " ";
      var newWord = true;
      for(var i = 0; i < string.length; i ++){
        if(newWord){
          newWord = false;
          output += string[i].toUpperCase();
        } else output += string[i];
        if(string[i] === " ")newWord = true;
      }
      return output;
    }
    console.log(letterCapitalize("hello world!"));
    • muchas gracias!!
  3. 1

    Otras personas ya han proporcionado la solución correcta, pero aquí hay algunos puntos importantes:

    1. asegúrese de aplicar una sangría en el código correctamente, hace que sea mucho más fácil de leer y depurar.

    2. usted necesita llamar a la toUpperCase funciones el uso de paréntesis, alias cadena.charAt(i).toUpperCase()

    3. el método toUpperCase no modificar la cadena de sí mismo, de modo que cuando usted llame a la salida += str.charAt(i), agregar el original letra minúscula, no de la letra mayúscula. usted puede ver las otras soluciones de la línea: salida += str.charAt(i).toUpperCase()

  4. 0

    Sigo recibiendo una cadena en blanco devuelto, creo que hay algunos básicos error de sintaxis con la instrucción if que no puedo entender?

    No con el si-declaración, pero con el bucle de sí mismo:

    for(var i=0; i < str.length; i++);
    //                              ^

    Este punto y coma significa que no hay nada sino una declaración vacía en el cuerpo del bucle, la si-instrucción se coloca después de el bucle (el sangrado realmente coincide con este).

    El uso de este (fijo también algunos otros problemas, como la llamada a toUpperCase() y el principio cadena):

    function letterCapitalize(str) { 
        var output = "";
        for (var i=0; i<str.length; i++)
            if (i == 0 || str.charAt(i-1) == " ")
                output += str.charAt(i).toUpperCase();
            else
                output += str.charAt(i);
        return output;
    }
    letterCapitalize("hello world"); //"Hello World"
  5. 0
    function LetterCapitalize(str) {
        var output = "";
        for (var i = 0; i < str.length; i++) {
            if (i === 0) {
                output += str.charAt(i).toUpperCase();
            } else {
                output += str.charAt(i);
            }
        }
        return output;
    };
    
    console.log(LetterCapitalize("hello world"))

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea