Estaba tratando de invertir una cadena usando un bucle for. El enfoque que tomé fue iterar hacia atrás a través de toda la cadena, obtener cada carácter separado de una cadena en orden descendente y luego concatenar los caracteres invertidos en una nueva cadena invertida. Sin embargo, encontré un pequeño problema: la cadena se invirtió, pero "indefinido" se concatenó al principio.
¿Qué estoy haciendo mal y por qué sucede esto? Muchas gracias por la ayuda de antemano.
Consulte el fragmento de código y la consola para obtener más detalles.
const string = "A quick brown fox jumped over the lazy dog."; let newStr = ""; for (let i = string.length; i >= 0; i--) { let char = string[i]; newStr += char; } console.log(newStr);Debido a que la matriz comienza desde 0 y se puede acceder al último elemento por length-1 por lo que la array[length] es igual a escribir array[999999]
const string = "A quick brown fox jumped over the lazy dog."; let newStr = ""; for (let i = string.length-1; i >= 0; i--) { let char = string[i]; newStr += char; } console.log(newStr); //alternative way console.log(string.split('').reverse().join(''));Debe comenzar desde string.length - 1 ya que string[string.length] está tratando de referir un elemento fuera de los límites de la matriz, por lo tanto, se evalúa como undefined
const string = "A quick brown fox jumped over the lazy dog."; let newStr = ""; for (let i = string.length - 1; i >= 0; i--) { let char = string[i]; newStr += char; } console.log(newStr);