1.0.0 • Published 10 years ago
lex-compare v1.0.0
lex-compare
Implements lexicographical comparison.
Install
$ npm install --save lex-compareUsage
'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
1.0.0
10 years ago