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

94
Visualizações
Sort array of object by key

So I have this array of objects

[
  {
    '1485958472927784961': {
      name: 'bruno fiverr',
      points: 6,
      user_id: '1485958472927784961',
      tweets: [Array]
    },
    '1414575563323420679': {
      name: 'ju',
      points: 7,
      user_id: '1414575563323420679',
      tweets: [Array]
    }
  }
]

and I would like to sort this array by the number of points the user has. I am trying to get it working using array.sort with the following function:

var top10 = array.sort(function(a, b) { return a.points > b.points ? 1 : -1; }).slice(0, 10);

but all I get is the same array from start. is that possible?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

You have an array with a single object whose values you want to sort by a property. For that you'll want to:

  1. Access the first object in the outer array with array[0]
  2. Extract the values of the object as an array with Object.values
  3. Sort the values in descending order with the sort function (a,b) => b.points - a.points
  4. Obtain your 10 elements with .slice(0,10)

const array = [
  {
    '1485958472927784961': {
      name: 'bruno fiverr',
      points: 6,
      user_id: '1485958472927784961',
      tweets: [Array]
    },
    '1414575563323420679': {
      name: 'ju',
      points: 7,
      user_id: '1414575563323420679',
      tweets: [Array]
    }
  }
];

const top10 = Object.values(array[0]).sort((a,b) => b.points - a.points).slice(0,10);

console.log(top10);

about 4 years ago · Juan Pablo Isaza Relatório

0

The outermost array is useless here. I would change your data structure to an object with key-values:

const data = {
  '1485958472927784961': {
    name: 'bruno fiverr',
    points: 6,
    user_id: '1485958472927784961',
    tweets: [],
  },
  '1414575563323420679': {
    name: 'ju',
    points: 7,
    user_id: '1414575563323420679',
    tweets: [],
  },
};

From this you can just get all the values which becomes an array of the objects, then run a sort on that.

const data = {
  '1485958472927784961': {
    name: 'bruno fiverr',
    points: 6,
    user_id: '1485958472927784961',
    tweets: []
  },
  '1414575563323420679': {
    name: 'ju',
    points: 7,
    user_id: '1414575563323420679',
    tweets: []
  }
}

const sorted = Object.values(data).sort(function(a, b) {
  return a.points > b.points ? 1 : -1;
}).slice(0, 10);

console.log(sorted)

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