sorts

1.1.1 • Public • Published

Common functions for array.sort(), to keep your code neat and tidy

Tired of staring at the same array.sort() (also known as Array.prototype.sort() ) functions over and over again?

Worried about stuff like Unicode comparisons?

Need to sort an array of objects by some nested key, using a particular sort function?

Want to do cool stuff like compare domain names, ordering subdomains beneath their parents?

Use the sorts module!

Using the module

var sorts = require('sorts')

alphabetical

Sorts by alphabetical order, case insensitive, handles unicode.

Given:

var fruits = ['pineapple', 'mango', 'coconut']

Just:

fruits.sort(sorts.alphabetical)

Returns:

['coconut', 'mango', 'pineapple']

byLength

Given:

var fruits = ['pineapple', 'mango', 'coconut']

Returns:

['mango', 'coconut', 'pineapple']

Just:

fruits.sort(sorts.byLength)

byNumber(keyName)

numeric(keyName)

var ages = [21, 8, 20]

Just:

ages.sort(sorts.numeric)

Returns:

[8, 20, 21]

domainName

Sort alphabetically, but order subdomains beneath their parents, and include 'www.' immediately after the regular domain name. Eg:

var domainNames = [
	'banana.com',
	'www.banana.com',
	'peach.com',
	'yolo.swag.banana.com',
	'pear.com',
	'www.pear.com',
	'www.bananameltdown.com',
	'swag.banana.com',
	'bananameltdown.com',
	'www.peach.com'
]
domainNames.sort(sorts.domainName)

Returns:

[
	'banana.com',
	'www.banana.com',
	'swag.banana.com',
	'yolo.swag.banana.com',
	'bananameltdown.com',
	'www.bananameltdown.com',
	'peach.com',
	'www.peach.com',
	'pear.com',
	'www.pear.com'
]

byKey(keyName, sortFunction)

Sort an array of objects by a specified key. sortFunction can be any of the sort functions above - alphabetical is the default sortFunction.

var customers = [{
	name: 'Joe',
	age: 35,
}, {
	name: 'Alex',
	age: 28
}]

Just:

customers.sort(sorts.byKey('name', 'alphabetical'))

Returns:

[{
	name: 'Alex',
	age: 28
},{
	name: 'Joe',
	age: 35,
}]

Please add more sorts!

Package Sidebar

Install

npm i sorts

Weekly Downloads

1

Version

1.1.1

License

MIT

Last publish

Collaborators

  • mikemaccana