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

69
Visualizações
Ordenar matriz anidada que no devuelve resultados ordenados

Tengo el siguiente código, que parece estar haciendo lo correcto, pero cuando registro el objeto de matriz, nunca cambia:

 let data = [ {'country': 'AB', 'state': 'DE'}, {'country': 'US', 'state': 'CA'}, {'country': 'AB', 'state': 'DE'}, {'country': 'US', 'state': 'MI'}, {'country': 'RU', 'state': null} ]; function sortFunc(a, b) { let val = a['country'] < b['country']; console.log(a['country'], b['country'], val); return +val; } data.sort(sortFunc); console.log(data);

¿Cuál es el problema con el código anterior?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

La función de sort debe ir en ambos sentidos y devolver 0 si es igual o -1 o 1 ; la función anterior solo devuelve 1 o 0 . Aquí sería una versión adecuada:

 let data = [ {'country': 'AB', 'state': 'DE'}, {'country': 'US', 'state': 'CA'}, {'country': 'AB', 'state': 'DE'}, {'country': 'US', 'state': 'MI'}, {'country': 'RU', 'state': null} ]; function sortFunc(_a, _b) { let [a,b] = [_a['country'], _b['country']]; if (a===b) return 0; else if (a>b) return 1; else return -1; } data.sort(sortFunc); console.log(data);

about 4 years ago · Juan Pablo Isaza Relatório

0

No sé si desea ordenarlo en forma ascendente o descendente, así que descúbralo usted mismo con el operador ternario. Descansa, supongo que está funcionando como esperas.

 let data = [ {'country': 'AB', 'state': 'DE'}, {'country': 'US', 'state': 'CA'}, {'country': 'AB', 'state': 'DE'}, {'country': 'US', 'state': 'MI'}, {'country': 'RU', 'state': null} ]; function sortFunc(a, b) { return a['country'] < b['country']?1:-1; } data = data.sort(sortFunc); console.log(data);

ingrese la descripción de la imagen aquí

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