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

183
Vistas
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 Respuestas
Responde la pregunta

0

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

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 Denunciar

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 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