0
votes

Comment trier un tableau d'objets par propriété d'objet imbriquée stockée à l'index?

J'ai besoin de trier cet éventail d'objets par sa propriété imbriquée en ordre décroissant, mais la propriété que j'ai besoin pour trier est "stockée" à l'intérieur d'un index de propriété (pas sûr de ce qu'on appelle ce qu'on appelle). Comment puis-je faire cela avec .sort ()?

ive essayé de rechercher la réponse sur Stackoverflow et il y a beaucoup de sujets à ce sujet, mais je ne trouve pas cette réponse spécifique ou je ne peux pas la comprendre .. p>

J'ai essayé ce code: p>

p>

        var array = [
          {user:"Julia", startTime: "2019-04-09T11:22:36"}, 
          {user:"Lisa", startTime:"2019-04-10T11:22:36"},
          {user:"Hank", startTime:"2019-04-11T11:22:36"},
          {user:"Hank", startTime:"2019-04-08T11:22:36"},
        ];
        
        
        function compare(a, b) {
          const startA = new Date(a.startTime).getTime();
          const startB = new Date(b.startTime).getTime();
          return startA + startB;
        }
        
        console.log(array.sort(compare));


5 commentaires

Si vous vouliez une matrice, vous devriez laisser sortir ils clé: syntaxe, c'est pour les objets


Sry, c'était mon premier post. Où est-ce que je me suis trompé exactement?


Il suffit d'exécuter l'extrait - vous pouvez voir que la syntaxe est incorrecte. Vous n'avez pas défini le tableau correctement


Ah, je vois. J'ai corrigé la syntaxe, mais cela n'a pas résolu le problème que j'avais. Comme si vous avez dit que la syntaxe était fausse, mais le problème est resté. Heureusement, le code Maniac & Topheman a corrigé la syntaxe et m'a donné la réponse.


La réponse est dans la question que j'ai liée à - voir le haut de la page


3 Réponses :


2
votes

retour Démarrer - Strata; au lieu de retour Starta + Démarrer; . .


2 commentaires

Je ne vois pas comment c'est la réponse comme je la voulais dans l'ordre décroissant? Ou je ne peux pas voir quelque chose?


Oh pardon. Mon erreur.



0
votes

Vous étiez fermé: il suffit de changer retour starta + startb; code> à retour starta> startb? -1: 1; code>

p>

var array = [
  {user:"Julia", startTime: "2019-04-09T11:22:36"}, 
  {user:"Lisa", startTime:"2019-04-10T11:22:36"},
  {user:"Hank", startTime:"2019-04-11T11:22:36"},
  {user:"Hank", startTime:"2019-04-08T11:22:36"},

];

function compare(a, b) {
  const startA = new Date(a.startTime).getTime();
  const startB = new Date(b.startTime).getTime();
  return startA > startB ? -1 : 1;
}

console.log(array.sort(compare));


0 commentaires

0
votes

APRRECIAT @ MBOJKO'S RÉPONSE Etant donné que l'utilisateur souhaite trier la matrice dans la commande Desecnding Utilisez Démarrage - Starta;

sur les dates de tri en décentraînement - les dates les plus récentes sont d'abord P>

P>

var array = [
   {user:"Julia", startTime: "2019-04-09T11:22:36"}, 
   {user:"Charles", startTime:"2019-04-10T11:22:36"},
   {user:"Lisa", startTime:"2019-04-10T11:22:36"},
   {user:"Hank", startTime:"2019-04-11T11:22:36"},
   {user:"Hank", startTime:"2019-04-08T11:22:36"},

];

function compare(a, b) {

const startA = new Date(a.startTime).getTime();
const startB = new Date(b.startTime).getTime();
return startB - startA;
}

console.log(array.sort(compare));


0 commentaires