alpha-sort

5.0.0last stable release 4 years ago
Complexity Score
Low
Open Issues
0
Dependent Projects
28
Weekly Downloadsglobal
13,906

License

  • MIT
    • Yesattribution
    • Permissivelinking
    • Permissivedistribution
    • Permissivemodification
    • Nopatent grant
    • Yesprivate use
    • Permissivesublicensing
    • Notrademark grant

Downloads

Readme

alpha-sort

Alphabetically sort an array of strings

With correct sorting of unicode characters. Supports natural sort order with an option.

Install

$ npm install alpha-sort

Usage

import alphaSort from 'alpha-sort';

['b', 'a', 'c'].sort(alphaSort());
//=> ['a', 'b', 'c']

['b', 'a', 'c'].sort(alphaSort({descending: true}));
//=> ['c', 'b', 'a']

['B', 'a', 'C'].sort(alphaSort({caseInsensitive: true}));
//=> ['a', 'B', 'C']

['file10.txt', 'file2.txt', 'file03.txt'].sort(alphaSort({natural: true}));
//=> ['file2.txt', 'file03.txt', 'file10.txt']

API

alphaSort(options?)

Get a comparator function to be used as argument for Array#sort.

options

Type: object

descending

Type: boolean
Default: false

Whether or not to sort in descending order.

caseInsensitive

Type: boolean
Default: false

Whether or not to sort case-insensitively.

Note: If two elements are considered equal in the case-insensitive comparison, the tie-break will be a standard (case-sensitive) comparison. Example:

import alphaSort from 'alpha-sort';

['bar', 'baz', 'Baz'].sort(alphaSort({caseInsensitive: true}));
//=> ['bar', 'Baz', 'baz']
natural

Type: boolean
Default: false

Whether or not to sort using natural sort order (such as sorting 10 after 2).

Note: If two elements are considered equal in the natural sort order comparison, the tie-break will be a standard (non-natural) comparison. Example:

import alphaSort from 'alpha-sort';

['file10.txt', 'file05.txt', 'file0010.txt'].sort(alphaSort({natural: true}));
//=> ['file05.txt', 'file0010.txt', 'file10.txt']
preprocessor

Type: function
Default: undefined

A custom function that you can provide to manipulate the elements before sorting. This does not modify the values of the array; it only interferes in the sorting order.

This can be used, for example, if you are sorting book titles in English and want to ignore common articles such as the, a or an:

import alphaSort from 'alpha-sort';

['The Foo', 'Bar'].sort(alphaSort({
    preprocessor: title => title.replace(/^(?:the|a|an) /i, '')
}));
//=> ['Bar', 'The Foo']

Note: If two elements are considered equal when sorting with a custom preprocessor, the tie-break will be a comparison without the custom preprocessor.

Related

  • num-sort - Sort an array of numbers

Dependencies

No runtime dependency information found for this package.

CVE IssuesActive
0
Scorecards Score
3.50
Test Coverage
No Data
Follows Semver
Yes
Github Stars
38
Dependenciestotal
3
DependenciesOutdated
3
DependenciesDeprecated
0
Threat Modelling
No
Repo Audits
No

Learn how to distribute alpha-sort in your own private NPM registry

npm config set registry  https://npm.cloudsmith.com/owner/repo
Processing...
Done
npm install alpha-sort
Processing...
Done

Releases

Loading Version Data
NPM on Cloudsmith

Getting started with NPM on Cloudsmith is fast and easy.