closest-match
Version:
Uses Levenshtein Distance to find the closest string match or matches in an array
31 lines (30 loc) • 870 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.distance = void 0;
var distance = function (a, b) {
var _a;
if (a.length === 0)
return b.length;
if (b.length === 0)
return a.length;
if (a.length > b.length)
_a = [b, a], a = _a[0], b = _a[1];
var row = [];
for (var i = 0; i <= a.length; i++)
row[i] = i;
for (var i = 1; i <= b.length; i++) {
var prev = i;
for (var j = 1; j <= a.length; j++) {
var val = void 0;
if (b.charAt(i - 1) === a.charAt(j - 1))
val = row[j - 1];
else
val = Math.min(row[j - 1] + 1, prev + 1, row[j] + 1);
row[j - 1] = prev;
prev = val;
}
row[a.length] = prev;
}
return row[a.length];
};
exports.distance = distance;