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

107
Visualizações
Función con nombre no anónimo para ordenar objetos multidimensionales por el valor de la subclave ESPECIFICADA

Tengo un objeto (no una matriz):

 var people = {}; people['Zanny'] = {date: 447, last: 'Smith'}; people['Nancy'] = {date: 947, last: 'William'}; people['Jen'] = {date: 147, last: 'Roberts'};

A diferencia de esta pregunta de clasificación genérica , necesito especificar el valor de la subclave para clasificar, en este caso: date . En aras de la simplicidad, eliminé los primeros siete dígitos de las fechas, ya que eso no es importante.

Después de la clasificación, el objeto debe clasificarse por los valores de la clave de date de la siguiente manera:

 people['Jen'] = {date: 147, last: 'Roberts'};//147 is the lowest/first value. people['Zanny'] = {date: 447, last: 'Smith'}; people['Nancy'] = {date: 947, last: 'William'};//947 is the highest/last value.

Necesito crear una función nombrada no anónima reutilizable con dos parámetros obvios: el object y la key cuyo valor se basa la clasificación. He pasado algún tiempo tratando de experimentar con lo siguiente sin ningún éxito todavía:

 function array_sort_by_values(o, k) { return Object.entries(o).sort().reduce(function (result, key) { //console.log(result,key); result[key][k] = o[key][k]; return result; }, {}); }
  • No puedo usar o.sort ya que es para tipos de matrices (aunque JavaScript afirma que todo es un objeto y que las "matrices" no existen).
  • No puedo enfatizar demasiado que debo poder especificar el nombre de la clave, ya que necesito usar esta forma de clasificación para algunas cosas diferentes. ¿Qué me estoy perdiendo aquí?
  • Absolutamente sin marcos o bibliotecas.
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

¿Qué hay de convertir un objeto en una matriz para ordenar y volver a convertir?

 var people = {}; people['Zanny'] = {date: 447, last: 'Smith'}; people['Nancy'] = {date: 947, last: 'William'}; people['Jen'] = {date: 147, last: 'Roberts'}; console.log(Object.fromEntries(Object.entries(people).sort((a,b) => { return a[1].date - b[1].date })))

 var people = {}; people['Zanny'] = {date: 447, last: 'Smith'}; people['Nancy'] = {date: 947, last: 'William'}; people['Jen'] = {date: 147, last: 'Roberts'}; console.log(Object.fromEntries(Object.entries(people).sort(([,a],[,b]) => { return a.date - b.date })))

Como una función nombrada:

 function array_sort_by_values(o, k) { return Object.fromEntries(Object.entries(o).sort((a,b) => {return a[1][k] - b[1][k]})); }

Para mantener los cambios en vigor, el objeto debe reasignarse:

 people = array_sort_by_values(people, 'date'); console.log(people); array_sort_by_values(people, 'last') console.log(people);
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