web-dev-qa-db-ja.com

ES6の `Set`をソートするにはどうすればよいですか?

new Set(['b', 'a', 'c']).sort() throws TypeError: set.sort is not a function。特定の反復順序を確保するためにSetをソートするにはどうすればよいですか?

52
ericsoco

セットは、順序付けられた抽象データ構造ではありません。

ただし、Setの反復順序は常に同じです-要素の挿入順序[1]。したがって、反復する場合(反復メソッドによって、Symbol.iterator、またはfor .. ofループによって)常に期待できます。

セットをいつでも配列に変換して並べ替えることができます。

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

[1] forEach および CreateSetIterator

89