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

289
Views
Convierta una lista en una matriz en JavaScript: cómo darle sentido a esto para bucle

Me dan una lista -

 let listA = {value: 10, rest: {value: 20, rest: { value: 30, rest: null }}}

Necesito convertirlo en una matriz -

 [10, 20, 30]

Utilicé este ciclo for para repasar las claves en la lista

No funcionó. El libro Eloquent JS usa esto para bucle -

 let array = []; for (let node = list; node; node = node.rest){ array.push(node.value);

Soy un principiante. Solo he encontrado bucles for simples como:

 for(let i=0; i <= array.length; i++)

y versiones similares.

¿Qué está pasando con esta sintaxis de bucle for?

Este bucle for funciona pero no sé cómo

about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Su "lista" es una lista enlazada. Se modela como objetos anidados recursivamente. Necesita un algoritmo recursivo o realizar un seguimiento de su "pila" actual manualmente al escribir en forma iterativa.

 let array = []; for (let node = list; node; node = node.rest) { array.push(node.value); }

Toma el primer objeto, lo inserta en la matriz, luego deja que el objeto actual apunte a node.rest (el objeto anidado interno) y repite esto hasta que el objeto actual ya no apunte a ninguna parte ( node es la abreviatura de !!node : prueba el valor para ser veraz No es del todo correcto, pero puede pensar en él como node != null ).

Si no está acostumbrado a los bucles for no indexados, puede traducirse fácilmente a un bucle while con el mismo comportamiento:

 let array = []; let node = list; while (node) { // shorthand for `!!node`: tests the value to be truthy array.push(node.value); node = node.rest; }

El node variable asume los siguientes valores en orden:

  1. { value: 10, rest: { value: 20, rest: { value: 30, rest: null } } }
  2. { value: 20, rest: { value: 30, rest: null } }
  3. { value: 30, rest: null }
  4. null
about 4 years ago · Santiago Trujillo Report

0

Su objeto de entrada es un objeto json anidado con clave de valor y descansa como siguiente objeto.

 {value: 10, rest: {value: 20, rest: { value: 30, rest: null }}}

El bucle for que ha puesto está iterando sobre el objeto anidado

  1. En la primera iteración, toma el objeto raíz empujando el valor 10 a la matriz.

  2. En la segunda iteración, toma el valor de lectura del primer objeto anidado 20 y lo empuja a la matriz.

  3. En la tercera iteración, lee el siguiente objeto anidado y empuja el valor 30 a la matriz.



about 4 years ago · Santiago Trujillo 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!