web-dev-qa-db-fra.com

Trier le tableau avec lodash par valeur (entier)

Je me bats vraiment pour ça mais je ne trouve pas de solution.

J'ai un tableau et je veux le trier par valeur (tous les entiers). J'ai pensé, bon, utilisons Lodash, il doit y avoir une fonction pratique pour cela.

D'une manière ou d'une autre je ne peux pas comprendre cela cependant.

Jusqu'ici j'ai eu ceci:

myArray = [3, 4, 2, 9, 4, 2]

J'ai un résultat si j'ai utilisé ce code:

myArray = _(myArray).sort();

Mais malheureusement, la valeur de retour ne semble plus être un tableau. myArray.length n'est pas défini après le tri.

J'ai trouvé des milliers d'exemples de tableau de tri lodash, mais toujours par clé. https://lodash.com/docs#sortBy

Quelqu'un peut-il me dire comment obtenir le résultat de retour suivant sous forme de tableau ?:

[2, 2, 3, 4, 4, 9]

Cela ne peut pas être si difficile, mais de toute façon, je ne le fais pas ...

Parfois aussi, je pense que la documentation lodash est un peu complexe. Je suis probablement en train de rater un détail important ...

39
Merc

Vous pouvez utiliser la fonction sortBy () ici. Vous n'avez pas besoin de spécifier une clé, car elle tombera sur identity () .

var myArray = [ 3, 4, 2, 9, 4, 2 ];

_.sortBy(myArray);
// → [ 2, 2, 3, 4, 4, 9 ]

_(myArray).sortBy().take(3).value();
// → [ 2, 2, 3 ]
62
Adam Boduch

La réponse sélectionnée est correcte, mais nous pouvons également effectuer cette tâche avec sort ()

const _ = require('lodash');
const myArray = [1,2,3,4,"A1","A10","A11","A12","A2","A3","A4","AZ","A5","B10", "B2", "F1", "F12", "F3",1,5,6,7,0,"a","b","a1"];

const sortFilter = _(myArray).sort().value();
console.log(sortFilter)

const sortByFilter = _(myArray).sortBy().value();
console.log(sortByFilter)
0
Renish Gotecha