Le site Array.sort() trie les éléments d'un tableau en place et retourne le tableau. Faites attention avec Array.sort() car ce n'est pas Immuable . Pour un tri immuable, utilisez tri immuable .
Cette méthode permet de trier le tableau en utilisant la méthode actuelle de updated_at
au format ISO. Nous utilisons new Data(iso_string).getTime()
pour convertir le temps ISO en timestamp Unix. Un timestamp Unix est un nombre sur lequel nous pouvons faire des calculs simples. Nous soustrayons le premier et le second horodatage et le résultat est : si le premier horodatage est plus grand que le second, le nombre de retour sera positif. Si le deuxième chiffre est plus grand que le premier, la valeur de retour sera négative. Si les deux sont identiques, le retour sera de zéro. Cela correspond parfaitement aux valeurs de retour requises pour la fonction en ligne.
Pour ES6 :
arr.sort((a,b) => new Date(a.updated_at).getTime() - new Date(b.updated_at).getTime());
Pour ES5 :
arr.sort(function(a,b){
return new Date(a.updated_at).getTime() - new Date(b.updated_at).getTime();
});
Si vous changez votre updated_at
pour être des timestamps unix vous pouvez faire ceci :
Pour ES6 :
arr.sort((a,b) => a.updated_at - b.updated_at);
Pour ES5 :
arr.sort(function(a,b){
return a.updated_at - b.updated_at;
});
Au moment de la rédaction de cet article, les navigateurs modernes ne prennent pas en charge ES6. Pour utiliser ES6 dans les navigateurs modernes, utilisez babel pour transposer le code en ES5. Attendez-vous à ce que le navigateur prenne en charge ES6 dans un avenir proche.
Array.sort() doit recevoir une valeur de retour correspondant à l'un des trois résultats possibles :
- Un nombre positif (premier élément > deuxième élément)
- Un nombre négatif (premier élément < deuxième élément)
- 0 si les deux éléments sont égaux
Notez que la valeur de retour de la fonction en ligne peut être un nombre positif ou négatif. nombre positif ou négatif. Array.Sort() ne se soucie pas de la valeur de retour. nombre de retour. Elle se soucie uniquement de savoir si la valeur de retour est positive, négative ou nulle.
Pour un tri immuable : (exemple en ES6)
const sort = require('immutable-sort');
const array = [1, 5, 2, 4, 3];
const sortedArray = sort(array);
Vous pouvez aussi l'écrire de cette façon :
import sort from 'immutable-sort';
const array = [1, 5, 2, 4, 3];
const sortedArray = sort(array);
L'import-from que vous voyez est une nouvelle façon d'inclure javascript dans ES6 et rend votre code très propre. Mon préféré.
Le tri immuable ne modifie pas le tableau source mais renvoie un nouveau tableau. Utilisation de const
est recommandé sur les données immuables.