lex-compare
v1.0.0
Published
Implements lexicographical comparison.
Downloads
3
Maintainers
Readme
lex-compare
Implements lexicographical comparison.
Install
$ npm install --save lex-compare
Usage
'use strict';
// You need to call lexCompare to get a comparator. It takes an element
// comparator as an optional argument.
var lexCompare = require('lex-compare')();
var superArray = [
[1, 20, 3],
[1, 3, 7],
[5, 7, 8]
];
console.log(superArray.sort(lexCompare));
// [ [1, 3, 7],
// [1, 20, 3],
// [5, 7, 8] ]
'use strict';
// Takes arrays of strings and compares them lexicographically by the position
// of 't' in each string.
var tPosLexComparator = require('lex-compare')(function(a, b) {
var aPos = a.indexOf('t');
var bPos = b.indexOf('t');
return (aPos < bPos ? -1 : aPos > bPos ? 1 : 0);
});
console.log(
// -1 because [0] < [3]
tPosLexComparator(['tetris'], ['flute']),
// 1 because [0, 1] > [0, 0]
tPosLexComparator(['tetris', 'strobe'], ['trail', 'top'])
);
'use strict';
var assert = require('assert');
var lexCompare = require('lex-compare');
var compareVersions = (function() {
var lc = lexCompare();
var regex = /^[0-9]+.[0-9]+.[0-9]+$/;
return function(vA, vB) {
assert(regex.test(vA) && regex.test(vB));
return lc(
vA.split('.').map(Number),
vB.split('.').map(Number)
);
};
})();
console.log(
compareVersions('1.0.0', '1.1.1'), // -1
compareVersions('1.20.0', '1.7.0') // 1
);
License
MIT © Andrew Morris