Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

159
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!