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

108
Vistas
¿Cómo deconstruir una matriz y colocarla en la matriz "principal"?

¿Cómo puedo deconstruir una matriz y colocarla en la matriz en la que se está mapeando y luego continuar clasificándola?

La matriz tiene el siguiente aspecto después de filtrarla:

 [ ['traitName', 'value'], ['traitName', ['value01', 'value02', 'value03' ...] ], //... ]

Quiero verificar cada rasgo y verificar si el primer índice es una matriz, luego deconstruir eso y colocarlo en esta matriz de esta manera:

 [ ['traitName', 'value'], ['traitName', value01], ['traitName', value02], ['traitName', value03], //... ],

Entonces puedo continuar clasificando en esta matriz.

 Object.entries(nft) .filter((val: any) => val[0] !== 'Attributes' && data.attributes[val[0]] !== undefined) .sort((a: any, b: any) => { if (typeof a[1] === 'number') return Infinity; return ( data.attributes[a[0]]?.values[a[1]]?.distribution - data.attributes[b[0]]?.values[b[1]]?.distribution ); })

Necesito esto entre el filtro y la clasificación, creo.

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

0

Puedes usar flatMap para hacer esto:

 const data = [ ['traitName', 'value'], ['traitName', ['value01', 'value02', 'value03']], ] const output = data.flatMap( ([n, v]) => (Array.isArray(v) ? v : [v]).map(vv => [n, vv]) ); console.log(output)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Esto se puede lograr usando .map , .concat y .flat() , en una línea como se muestra a continuación:

 arr.map(([x, y]) => ([].concat(y).map(z => ([x, z])))).flat()

Una posible solución se muestra a continuación:

Fragmento de código

 const arr = [ ['traitName', 'value'], ['traitName', ['value01', 'value02', 'value03'] ] ]; const res = arr.map( ar => ( [].concat(ar[1]) .map(x => ([ar[0], x])) ) ) .flat(); console.log('result using .map & .flat: ', res); // or in just one line: console.log( 'one line result: ', arr.map(([x, y]) => ([].concat(y).map(z => ([x, z])))).flat() );

Explicación

  • Iterar sobre la matriz original
  • Use [].concat() para tratar el segundo elemento de cada matriz interna como una matriz
  • Use .map() para iterar sobre los elementos de la matriz interna
  • Devolver el resultado deseado
  • Use .flat() para aplanar la matriz resultante.
about 4 years ago · Juan Pablo Isaza Denunciar

0

puedes usar esto,

 const a = [ ['traitName', 'value'], ['traitName', ['value01', 'value02', 'value03'] ] ] let final = [] a.forEach((item)=>{ console.log(typeof item[1]) if(typeof item[1] == "string") { final.push(item) } else if(typeof item[1] == 'object') { let len = item[1].length item[1].forEach((item2) =>{ let e = [item[0], item2] final.push(e) }) } }) console.log(final)
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