0
votes

Lodash _.Sortby basé sur la date et l'heure de création

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.js"></script>


3 commentaires

Voulez-vous les trier en ordre décroissant ou ne poser que le plus récent sur le dessus, le reste de l'ordre croissant en dessous?


Je veux afficher le plus récent sur le reste de l'ascension


J'ai ajouté Lodash à l'extrait. Veuillez ajouter un échantillon de résultat pour créer un exemple de reproductible minimal


3 Réponses :


0
votes

Supposons que ce soit vos données: xxx pré>

Vous pouvez y parvenir sans lodash par native array.pototype.sort () code> p>

output = _.sortBy(result, function(dateObj) {
  return new Date(dateObj.modifiedDate);
});


0 commentaires

2
votes

Si vous souhaitez avoir l'article le plus récent d'abord, mais le reste de l'ordre croissant, vous pouvez simplement trier normalement dans l'ordre croissant. Étant donné que le dernier élément serait le plus récent, vous pouvez ensuite le faire pivoter à l'avant de la matrice avec tableau # POP code> et TRAY # UNSHIFT CODE> :

P>

<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.15/lodash.min.js"></script>


5 commentaires

Mais dans ce cas, si j'ajoute 3 notes l'une après l'autre, il affiche la note 3, note 1 puis note 2


C'est ce que tu voulais, non? Le plus récent sur le dessus, alors le reste de l'ordre croissant, donc 3 -> 1 -> 2 devrait être le bon en fonction de cela.


Toutes mes excuses pour trompeurs, il devrait en fait afficher 3 -> 2 -> 1


J'ai eu une solution pour cela, j'ai mis à jour le code comme cela.notesinfo = _.sortby (résultat, ['ModifiedDate']). Inverser ();


@User j'ai ajouté une solution pour une commande descendante. Vous n'avez pas besoin inverse , vous pouvez simplement utiliser chy de Lodash.



0
votes

let notesInfo = []

if (_.isArray(result)) {
  console.log(result, '-----------');
  notesInfo = _.sortBy(result, ['modifiedDate']).reverse();
} else {
  notesInfo = result;
}

console.log(notesInfo)


0 commentaires