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

189
Vistas
Javascript ordena la matriz de objetos alfabéticamente Y coloca los primeros objetos con valor

Estoy tratando de ordenar estos datos que contienen varias matrices de objetos, el archivo console.log de myData es algo así como:

 [ { name: 'Cdb', image: 'xxx', coll: 'xxx' }, { name: 'Bcd', image: 'xxx', coll: 'xxx', url: 'myurl' } ] [ { name: 'Abc', image: 'xxx', coll: 'xxx' } ]

Estoy tratando de ordenarlo alfabéticamente (según el valor del name ) y si el objeto tiene el parámetro url , colóquelo al principio.

Entonces la salida sería:

 name: 'Cdb', image: 'xxx', coll: 'xxx', url: 'myurl' name: 'Abc', image: 'xxx', coll: 'xxx' name: 'Bcd', image: 'xxx', coll: 'xxx'

lo que probé es esto, y muchas variaciones, pero no funciona:

 var myData = props?.data console.log(props?.data) if(props.data){ // those with url first, then alphabetically myData = props.data.sort(function(a, b){ return b.url? 1 || (a.name < b.name) : -1; }) }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puedes usar !url como un número (0 o 1) y restarlos:

 const arr = [{"name":"Cdb","image":"xxx","coll":"xxx"},{"name":"Bcd","image":"xxx","coll":"xxx","url":"myurl"},{"name":"Abc","image":"xxx","coll":"xxx"}] arr.sort((a, b) => !a.url - !b.url || a.name.localeCompare(b.name)); console.log(arr)

Esto quiere decir que si exactamente uno de los dos tiene el argumento url , ese debe ir primero. De lo contrario (si ambos lo tienen, o ninguno lo tiene), entonces el name es decisivo.

De esta forma, cuando varios objetos tengan el argumento url , también estarán ordenados entre ellos por name .

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