compare.js
Comparator functions for your favorite sort-algo
Installation
npm install compare.js
Usage
var mergesort = ;var compare = ;var desc = comparedesc;var caseInsensitive = comparecaseInsensitive;// or require only what you needvar desc = ;var caseInsensitive = ; // Basic usage; // => [4, 3, 2, 2, 1]; // => ['a', 'B', 'b', 'c', 'C']; // => ['B', 'b', 'c', 'C', 'a']; // => ['B', 'b', 'c', 'C', 'a'] // Compose a sort functionvar compose = ;var curry = ; var sortDescByName = curry__ ; var users = name: 'Bylexus' name: 'Ai-Linh' name: 'Schtoeffel'; ; /* => [{ name: 'Schtoeffel'}, { name: 'Bylexus'}, { name: 'Ai-Linh'}]
API
simple() => comparator(a,b)
Simply checks if a
is smaller then b
1 2; // => -11 1; // => 02 1; // => 1 ;
date() => comparator(a,b)
Checks dates using moment.js.
'2015' '02' '1' '2015' '01' '31'; // => -1'2015' '02' '1' '2015' '02' '1'; // => 0'2015' '01' '31' '2015' '02' '1'; // => 1 '18.01.1986' '19.01.1986'; // => -1'18.01.1986' '18.01.1986'; // => 0'18.01.1986' '17.01.1986'; // => 1 ;
desc([comparator=simple]) => comparator(a,b)
Inverts a comparator.
1 2; // => 11 1; // => 02 1; // => -1 ;
property(propertyName, [comparator=simple]) => comparator(a,b)
Compares a property of two objects.
var foo = name: 'foo';var bar = name: 'bar'; foo bar; // => 1foo foo; // => 0bar foo; // => -1 // this works// this doesn't ;
caseInsensitive([comparator=simple]) => comparator(a,b)
Compares a property of two objects.
'a' 'A'; // => 0'A' 'a'; // => 0 ;