Ordered sets
When you convert sets to lists, you run the risk of adding values to the list out of order. Sets have no defined order, because they're not indexed collections. Immutable.js has an OrderedSet
collection type that acts like anOrderedMap
. It preserves the insertion order of its values. Other than that, it is just like a regular set.
Note
Internally, Set
uses Map
to store its values as map keys. OrderedSet
uses the OrderedMap
keys.
Sorting sets
You can use ordered sets to remove duplicate values and maintain the value insertion order. This means that you can do things such as converting a list to an ordered set, sorting the set, and then converting it back to a list. Examine the following:
const myList = List.of( 1, 3, 1, 2, 3, 4, 1, 5, 2, 4, 6, 1, 5, 2, 7, 1, 8, 3, 7, 1, 4, 2, 8, 9 ); const myUniqueList = myList .toOrderedSet() .sort() .reverse() .toList(); console.log('myList', myList.toJS()); // -> myList [ 1, 3, 1, 2, 3, 4, 1, 5, 2, 4, 6, // -> 1, 5...