web-dev-qa-db-fra.com

Comment puis-je trier un `Set` ES6?

new Set(['b', 'a', 'c']).sort() jette TypeError: set.sort is not a function. Comment puis-je trier un Set pour assurer un ordre d'itération particulier?

52
ericsoco

Un ensemble n'est pas une structure de données abstraites ordonnée.

Un Set a cependant toujours le même ordre d'itération - ordre d'insertion d'élément [1], donc lorsque vous l'itérez (par une méthode itérative, en appelant Symbol.iterator, ou par un for .. de boucle), vous pouvez toujours vous attendre à ça.

Vous pouvez toujours convertir l'ensemble en un tableau et le trier.

Array.from(new Set(["b","a","c"])).sort();
[...(new Set(["b","a","c"]))].sort(); // with spread.

[1] forEach et CreateSetIterator

89
Benjamin Gruenbaum