Skip to content

Instantly share code, notes, and snippets.

@ankr
Last active December 28, 2015 06:39
Show Gist options
  • Save ankr/7459107 to your computer and use it in GitHub Desktop.
Save ankr/7459107 to your computer and use it in GitHub Desktop.
Javascript implementation of "Levenshtein Distance" algorithm.
// levenshtein('boo', 'bar') => 2
var levenshtein = function (a, b, al, bl) {
var c = 1;
al = typeof al === 'undefined' ? a.length : al;
bl = typeof bl === 'undefined' ? b.length : bl;
if (!al) return bl;
if (!bl) return al;
if (a[al - 1] === b[bl - 1]) {
c = 0;
}
return Math.min(
levenshtein(a, b, al - 1, bl) + 1,
levenshtein(a, b, al, bl - 1) + 1,
levenshtein(a, b, al - 1, bl - 1) + c
);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment