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

168
Vistas
¿Cómo reordenar esta matriz sin un índice?

digamos que tengo

 let arr = [ {code: 5, country: 'DE', price: 8}, {code: 6, country: 'RU', price: 9}, {code: 7, country: 'US', price: 10}, {code: "FiveX", country: 'UK', price: 11}, {code: 5, country: 'ES', price: 12}, {code: 5, country: 'RU', price: 13}, {code: 7, country: 'BE', price: 14}, ]

Necesito que esta matriz se reordene de la siguiente manera

 arr = [ {priceDE: '8 (code5)' , priceES: '12 (code5)', priceRU: '13 (code5)'}, {priceRU: '9 (code6)'}, {priceUS: '10 (code7)', priceBE: '14 (code7)'} {priceUK: '11 (codeFiveX)'} ]

Básicamente, necesito agruparlos con la referencia del código, pero realmente no entiendo cómo hacerlo sin conocer el valor del código de antemano. Tenga en cuenta que el código no siempre es un número, puede ser una cadena

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

0

En primer lugar, su declaración de matriz original es incorrecta, ya que usa DE como una variable, mientras que debería ser una cadena encapsulada entre comillas 'DE' por lo que debe reescribirla para que sea reproducible.

Por ejemplo {code: 5, country: 'DE', price: 8},

Luego, debe hacer un bucle en su matriz original, tomar los valores y reconstruir un nuevo objeto con los nuevos valores. Digo objeto y no matriz, ya que necesitamos usar una key que, en su caso, puede ser un número, por ejemplo, 5 , o una cadena, por ejemplo, FiveX .

Aquí está el fragmento resultante

 let arr = [ {code: 5, country: 'DE', price: 8}, {code: 6, country: 'RU', price: 9}, {code: 7, country: 'US', price: 10}, {code: "FiveX", country: 'UK', price: 11}, {code: 5, country: 'ES', price: 12}, {code: 5, country: 'RU', price: 13}, {code: 7, country: 'BE', price: 14}, ] let new_arr = {} for(i=0; i<arr.length; i++) { let code = arr[i].code let country = arr[i].country let price = arr[i].price if (code in new_arr) { new_arr[code]['price'+country] = price } else { new_arr[code] = {} new_arr[code]['price'+country] = price } } console.log(new_arr)

La matriz resultante será lo que solicitó, aparte del extraño (code5) que, si lo desea, puede agregar concatenando price+" (code"+code+")" en el bucle for .

EDITAR

Lo olvidé, si desea que el elemento final sea una matriz en lugar de un objeto, puede repetirlo.

 let final_arr = [] for(i in new_arr) { final_arr.push(new_arr[i]) } console.log(final_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