This method performs an inplace, unstable sort. The method uses the method defined in
valueComparator protocol for comparison.
For convenience, a helper comparator is provided to perform some standard
sorts. See the
comparator class for details.
function myComparator()
{
this.compareValues = compareValuesFunc;
this.animalSize = myAnimalSizeChart;
}
function myAnimalSizeChart(animal)
{
var size = 0;
if (animal == "dog")
{
size = 10;
}
if (animal == "cat")
{
size = 5;
}
if (animal == "mouse")
{
size = 2
}
return size;
}
function compareValuesFunc(elem1, elem2, comparatorContext)
{
var creature1_size = myAnimalSizeChart(elem1);
var creature2_size = myAnimalSizeChart(elem2);
var comparison = creature1_size - creature2_size;
if (comparatorContext == "bySizeAscending")
{
comparison *= (-1);
}
return comparison;
}
function main()
{
var arrayObj = shell.serviceManager.basics.array;
var myOwnComparator = new myComparator();
arrayObj.addValue("dog");
arrayObj.addValue("cat");
arrayObj.addValue("mouse");
arrayObj.addValue("cat");
//The resulting array will be "dog" "cat" "cat" "mouse"
arrayObj.sort(myOwnComparator, "bySizeAscending");
//The resulting array will be "mouse" "cat" "cat" "dog"
arrayObj.sort(myOwnComparator, "bySizeDescending");
var comparatorObj = shell.serviceManager.basics.comparator;
//The resulting array will be "cat" "cat" "dog" "mouse"
arrayObj.sort(comparatorObj.stringAscending, "en-US");
//By default, when passing in "" as the comparatorContext for
//string comparators, the propogated locale is used, such as:
// arrayObj.sort(comparatorObj.stringAscending, "");
}