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

157
Vistas
Analice los elementos anidados de una matriz en la matriz principal

¿Cuál es la forma más eficiente de mover los elementos dentro de la parte anidada de la matriz interna hacia la matriz principal?

Ejemplo: [1,[2,3],4] -> [1,2,3,4]

mi intento

 var old_arr = ["one", ["two", "three"], "four"]; var new_arr = []; function arrayfix(arr) { for (var i = 0; i < arr.length; i++) { if (typeof arr[i] == typeof {}) { //checks to see if it's an object for (var j = 0; j < Object.keys(arr[i]).length; j++) { new_arr.push(arr[i][j]); } } new_arr.push(arr[i]); } return new_arr; } console.log(arrayfix(old_arr));

resultado real

 [ 'one', 'two', 'three', [ 'two', 'three' ], 'four' ]

resultado deseado

 [ 'one', 'two', 'three', 'four' ]
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Hay una función de prototipo incorporada en Array llamada plana para ese propósito.

Un parámetro: el nivel de profundidad que especifica la profundidad a la que se debe aplanar una estructura de matriz anidada. El valor predeterminado es 1.

flat() aplanará un 2D a 1D flat(2) aplanará un 3D a 1D.

 var old_arr= ["one",["two","three"],"four"]; console.log(old_arr.flat());

about 4 years ago · Juan Pablo Isaza Denunciar

0

función plana es lo que buscas.

 var old_arr= ["one",["two","three"],"four"]; var new_arr = old_arr.flat(); console.log(new_arr);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Utilice el método Array#flat(), como sugirió Amila Senadheera , o cambie su función para no agregar siempre el elemento a la nueva matriz, así:

 var old_arr= ["one",["two","three"],"four"]; function arrayfix(arr){ let new_arr = []; for(let i =0; i < arr.length; i++) { if(typeof arr[i] == typeof {}) { //checks to see if it's an object for(let j =0; j < Object.keys(arr[i]).length; j++) { new_arr.push(arr[i][j]); } } else { // if it's an array, don't add it back to the new array new_arr.push(arr[i]); } } return new_arr; } console.log(arrayfix(old_arr));

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