sortOn package:extra

Sort by comparing the results of a function applied to each element. The sort is stable, and the function is evaluated only once for each element.
A combination of group and sort, using a part of the value to compare on.
groupSortOn length ["test","of","sized","item"] == [["of"],["test","item"],["sized"]]
A version of nubSort which operates on a portion of the value.
nubSortOn length ["a","test","of","this"] == ["a","of","test"]