Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

160
Vistas
¿Por qué el código devuelve una matriz con una sola letra en lugar del nombre completo?

Aprendizaje de la asignación de desestructuración en Javascript y cuando se intenta tener una matriz en la desestructuración de objetos, solo la primera letra regresa a la consola, ¿por qué sucede?

 function splitter(name) { const [fName, lName] = name.split(" "); return { fName, lName }; } const {fName: [firstWord],lName} = splitter("John Doe"); console.log(splitter("John Doe")); console.log({fName: [firstWord],lName}); console.log(firstWord); console.log(lName);

Una imagen de código que muestra un objeto que contiene elementos para fname y lname como en: object { fName: "John", lName: "Doe"}

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Primero tomemos el caso simple, donde solo está desestructurando la matriz

 function splitter(name) { const [fName, lName] = name.split(' '); return { fName, lName }; } const { fName, lName } = splitter('John Doe'); console.log(fName); // John

Recuerde que las strings son iterables en JS

 const str = 'John'; for (let c of str) { // For-of can only be used in iterables console.log(c); }

Así que cuando lo hagas

 const { fName: [firstWord], lName } = splitter('John Doe');

entonces esto significa que también está desestructurando la cadena fName , lo que dará como resultado el firstChar como

Entonces, el 👆 anterior es exactamente igual que:

 const { fName, lName } = splitter('John Doe'); const [firstChar] = fName; console.log(firstChar); 

 function splitter(name) { const [fName, lName] = name.split(' '); return { fName, lName }; } const { fName, lName } = splitter('John Doe'); const [firstChar] = fName; console.log(firstChar);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Esto sucede porque splitter te devuelve fName y lName , cada uno de ellos es una palabra, una cadena, que es una matriz de caracteres.

Cuando reestructura fName a una matriz, le da la primera letra de la matriz.

Si agregará más argumentos a la matriz, obtendrá el resto de las letras.

Para solucionar su problema, simplemente no lo reestructure en una matriz.

 function splitter(name) { const [fName, lName] = name.split(" "); return { fName, lName }; } const {fName: [ch1,ch2,ch3,ch4],lName} = splitter("John Doe"); console.log({fName: [ch1,ch2,ch3,ch4],lName}); const {fName: [char1, ...restOfChars]} = splitter("John Doe"); console.log(char1); console.log(restOfChars); const {fName: wholeWord} = splitter("John Doe"); console.log(wholeWord);

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda