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

272
Views
acceder a matrices no contadas anidadas en JavaScript

He anidado las matrices que hizo el usuario. Quiero un código JavaScript para acceder, por ejemplo, al elemento "g" en él

 var nestedArrays = [ [a,b,c,d], [e,f,[ g,h ]] ];

en este ejemplo puedo acceder al elemento "g" usando este código

 var element = nestedarrays[2][1][1];

PERO si "g" está anidado en 100 de matrices, tengo que escribir muchos corchetes, ya que

 var g = nestedArrays[2][3][1][?][?].....[?];

O no sé cuánto "g" está anidado

¿HAY un código fácil para obtener cualquier elemento en las matrices anidadas con javascript o jquery puro?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Si solo está tratando de encontrar un elemento en particular, puede aplanar la matriz y encontrarlo de esa manera.

 var nestedArrays = [ ['a','b','c','d'], ['e','f',[ 'g','h' ]] ]; const g = nestedArrays.flat(Infinity).find(x => x === 'g'); console.log(g);

about 4 years ago · Juan Pablo Isaza Report

0

Todos sabemos que las matrices están basadas en cero.

En su primer ejemplo para acceder a 'g' , debe acceder a:

  • la segunda posición (índice [1] ) que es ['e','f',['g','h']]
  • luego acceda a la tercera posición (índice [2] ) que es ['g','h']
  • finalmente la primera posición (índice [0] ) y obtienes 'g' .
 var nestedArrays = [['a','b','c','d'],['e','f',['g','h']]]; let x = nestedArrays[1][2][0]; console.log(x); // g

Entonces, a partir de eso, podemos decir que para acceder a 'g'
Necesitamos seguir este camino de índices [1,2,0]

 var nestedArrays = [['a','b','c','d'],['e','f',['g','h']]]; let roadToG = [1,2,0]; for(let i = 0; i < roadToG.length; i++){ nestedArrays = nestedArrays[roadToG[i]]; } console.log(nestedArrays); // g

PERO si "g" está anidado en 100 de las matrices, tengo que escribir muchos corchetes, ya que var g = nestedArrays[2][3][1][?][?].....[?];

En caso de que queramos acceder a 'g' dinámicamente sin código duro el camino de los índices ; Debemos hacer un bucle recursivo en la matriz hasta que encontremos 'g' , en el bucle hacemos un seguimiento de la carretera

 function loopRecursively( arr, x ,roadToX = []){ if(JSON.stringify(arr).indexOf(x) == -1) return null; //in edge case where there is no x in array; we just return null! for ( let i = 0; i < arr.length; i++ ) { if( arr[i] == x ){ roadToX.push(i); } else if( Array.isArray( arr[i] ) && JSON.stringify(arr[i]).indexOf(x) != -1 ){ roadToX.push(i); loopRecursively( arr[i] , x, roadToX); } } return roadToX; } let nestedArrays = [['a','b','c','d'],['e','f',['g','h']]]; console.log( loopRecursively( nestedArrays, 'g' ) ); // [1, 2, 0]
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!