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

193
Visualizações
Colección de clasificación de Lodash basada en matriz externa

Tengo una matriz con claves como esta:

 ['asdf12','39342aa','12399','129asg',...]

y una colección que tiene estas claves en cada objeto así:

 [{guid: '39342aa', name: 'John'},{guid: '129asg', name: 'Mary'}, ... ]

¿Hay una forma rápida de ordenar la colección según el orden de las claves en la primera matriz?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

var sortedCollection = _.sortBy(collection, function(item){ return firstArray.indexOf(item.guid) });
over 4 years ago · Santiago Trujillo Relatório

0

Aquí hay un simple agregado a la respuesta aceptada en caso de que desee colocar los elementos no coincidentes al final de sortedCollection y no al principio:

 const last = collection.length; var sortedCollection = _.sortBy(collection, function(item) { return firstArray.indexOf(item.guid) !== -1? firstArray.indexOf(item.guid) : last; });
over 4 years ago · Santiago Trujillo Relatório

0

Aporte:

 var data1 = ['129asg', '39342aa']; var data2 = [{ guid: '39342aa', name: 'John' }, { guid: '129asg', name: 'Mary' }];
  1. Primero cree un objeto de índice, con _.reduce , como este

     var indexObject = _.reduce(data2, function(result, currentObject) { result[currentObject.guid] = currentObject; return result; }, {});
  2. Y luego map los elementos de la primera matriz con los objetos del indexObject , así

     console.log(_.map(data1, function(currentGUID) { return indexObject[currentGUID] }));

Producción

 [ { guid: '129asg', name: 'Mary' }, { guid: '39342aa', name: 'John' } ]

Nota: este método será muy eficiente si desea ordenar tantos objetos, ya que reducirá la búsqueda lineal en la segunda matriz, lo que haría que toda la lógica se ejecutara en una complejidad de tiempo O(M * N).

over 4 years ago · Santiago Trujillo 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