Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

118
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda