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

119
Vistas
Ordenar arreglos en JavaScript

Recibí una gran variedad de objetos del backend y usé el filtrado para dejar solo estos valores

 const markets = ['IT', 'DE', 'UK', 'FR', 'NL', 'US'] // so now this is what have

Entonces voy a hacer un mapa a través de los mercados, pero siempre comenzará por TI y seguirá ese orden. ¿Hay alguna manera de ordenar esto siguiendo un orden específico?

 ['US', 'DE', 'UK', 'FR', 'IT', 'NL']

Quiero ordenar cada matriz que recibo siguiendo este orden específico incluso si no recibo todos los valores.

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

0

Se podría implementar una función que utilice un objeto como búsqueda para cada uno de los valores de precedencia de un mercado y que, además, coloque los elementos de mercado desconocidos en último lugar.

 function getAssuredMarketPrecedence(marketList) { const marketPrecedence = { US: 0, DE: 1, UK: 2, FR: 3, IT: 4, NL: 5, }; return Array .from(marketList) .sort((a, b) => (marketPrecedence[a] ?? 1000) - (marketPrecedence[b] ?? 1000) ); } const markets = ['IT', 'DE', 'unknown2', 'UK', 'FR', 'unknown1', 'NL', 'US'] const sorted = getAssuredMarketPrecedence(markets); console.log({ markets, sorted });
 .as-console-wrapper { min-height: 100%!important; top: 0; }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Necesita escribir su propia función de comparación personalizada

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

Algo como esto:

 markets = ['IT', 'DE', 'UK', 'FR', 'NL', 'US'] markets.sort((item1, item2) => { neededOrder = ['US', 'DE', 'UK', 'FR', 'IT', 'NL'] idx1 = neededOrder.indexOf(item1) idx2 = neededOrder.indexOf(item2) if(idx1 < idx2) { return -1 } else if(idx1 > idx2) { return 1 } else { return 0 } })
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede asignar a cada mercado un valor dentro de un objeto y usarlo para compararlo y clasificarlo con la matriz de mercado que recibe del backend:

 const markets = ['IT', 'DE', 'UK', 'FR', 'NL', 'US'] let mappedMarkets = { 'US': 1, 'DE': 2, 'UK': 3, 'FR': 4, 'IT': 5, 'NL': 6 } console.log(markets.sort((a, b) => mappedMarkets[a] - mappedMarkets[b]))

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