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

145
Visualizações
ordenar una matriz de objetos por 1 o más valores de propiedad

Estoy averiguando si hay una mejor manera de ordenar la siguiente matriz.

El siguiente código ordena la matriz según la etiqueta y el dispositivo Registrado. si la etiqueta es Teléfono de escritorio y el dispositivo Registrado es verdadero, entonces debería tener prioridad.

Mi enfoque es como el siguiente.

 const terminals = [ { "device":"JKJCF00", "directory":"+1899990000", "label":"Jabber", "deviceRegistered":"false" }, { "device":"IOP8999", "directory":"9099886644", "label":"Desk Phone", "deviceRegistered":"false" }, { "device":"KLJ7888", "directory":"+8999999", "label":"Jabber", "deviceRegistered":"true" }, { "device":"VFD87987", "directory":"+12386444", "label":"Desk Phone", "deviceRegistered":"true" }]
 let term = [...terminals],arr=[],sortedLines = [],lineObj ={}; term.forEach(line => arr.indexOf(line.label)===-1 ? arr.push(line.label):''); arr.forEach(device => { let filterArr = term.filter(line => line.label === device) let sortArr = [...filterArr].sort((dev1,dev2) => dev1.deviceRegistered !== 'true' ? 1 : dev2.deviceRegistered !== 'true' ? -1 : 0) lineObj[device] = sortArr }) for (line in lineObj){ console.log(lineObj[line]) sortedLines.push(...lineObj[line]) } }

la salida es

 [ { "device":"KLJ7888", "directory":"+8999999", "label":"Jabber", "deviceRegistered":"true" }, { "device":"JKJCF00", "directory":"+1899990000", "label":"Jabber", "deviceRegistered":"false" }, { "device":"VFD87987", "directory":"+12386444", "label":"Desk Phone", "deviceRegistered":"true" }, { "device":"IOP8999", "directory":"9099886644", "label":"Desk Phone", "deviceRegistered":"false" } ]
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puede verificar las propiedades y usar el delta de los valores booleanos.

 const array = [ { device: "JKJCF00", directory: "+1899990000", label: "Jabber", deviceRegistered: "false" }, { device: "IOP8999", directory: "9099886644", label: "Desk Phone", deviceRegistered: "false" }, { device: "KLJ7888", directory: "+8999999", label: "Jabber", deviceRegistered: "true" }, { device: "VFD87987", directory: "+12386444", label: "Desk Phone", deviceRegistered: "true" } ]; array.sort((a, b) => (b.label === 'Desk Phone') - (a.label === 'Desk Phone') || (b.deviceRegistered === 'true') - (a.deviceRegistered === 'true') ); console.log(array);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Relatório

0

Suposición: soy el autor de esta biblioteca, pero creé sort-es exactamente para simplificar la clasificación de matrices.

Si estás interesado: documentos GH

 import { byValues, byString, byValue, byBoolean } from "sort-es" const terminals = [] //...items const sorted = terminals.sort(byValues([ ["label", byString()], ["deviceRegistered", byValue(d => d === 'true', byBoolean())] ]))
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