Array.sortOn
for JavaScript
An (almost complete) implementation of the ActionScript 3 Array.sortOn
method.
Install
npm i -S sort-on-as3
Usage
You can use sort-on-as3
either as a function or as an extension of the JavaScript Array
class with the sortOn
method.
Array.sortOn
method
Extend the Array
protoype using sortOn.extend(Array)
.
const sortOn = ;sortOn; // add `sortOn` to Array prototype const people = name: 'Andreas' age: 45 name: 'Matthias' age: 29 name: 'Steve' age: 29 ; people;console; // Output:// { name: 'Matthias', age: 29 },// { name: 'Steve', age: 29 },// { name: 'Andreas', age: 45 }
Extending the prototype of native JavaScript classes may be considered bad practice, which is why
sort-on-as3
offers you both choices and lets you make your own decision.
Standalone function
const sortOn = ;const people = name: 'Andreas' age: 45 name: 'Matthias' age: 29 name: 'Steve' age: 29 ;;console; // Output:// { name: 'Matthias', age: 29 },// { name: 'Steve', age: 29 },// { name: 'Andreas', age: 45 }
Supported Features
- Sorting is case-sensitive (Z precedes a) ✓
- Sorting is ascending (a precedes b) ✓
- The array is modified to reflect the sort order; multiple elements that have identical sort fields are placed consecutively in the sorted array in no particular order. ✓
- Numeric fields are sorted as if they were strings, so 100 precedes 99, because "1" is a lower string value than "9". ✓
- To pass multiple flags, separate them with the bitwise OR (
|
) operator ✓
fieldName
Parameter - A string that identifies a field to be used as the sort value ✓
- or an array in which the first element represents the primary sort field, the second represents the secondary sort field, and so on. ✓
options
Parameter - One or more numbers or names of defined constants, separated by the bitwise OR (|) operator, that change the sorting behavior ✓
- The following values are acceptable for the options parameter:
Array.CASEINSENSITIVE
✓Array.DESCENDING
✓Array.NUMERIC
✓Array.UNIQUESORT
Array.RETURNINDEXEDARRAY
✓- the
options
parameter accepts an array of sort options such that each sort option corresponds to a sort field in thefieldName
parameter ✓
Returns
If you specify a value of 4 orArray.UNIQUESORT
for theoptions
parameter, and two or more elements being sorted have identical sort fields, a value of 0 is returned and the array is not modified- If you specify a value of 8 or
Array.RETURNINDEXEDARRAY
for theoptions
parameter, an array is returned that reflects the results of the sort and the array is not modified. ✓ - Otherwise, nothing is returned and the array is modified to reflect the sort order. ✓