state-advice
Version:
This will auto-correct the indian state
39 lines (35 loc) • 1.07 kB
JavaScript
function getStringsCost(string1, string2) {
string1 = string1.toLowerCase();
string2 = string2.toLowerCase();
let costs = [];
for (let i = 0; i <= string1.length; i++) {
let lastValue = i;
for (let j = 0; j <= string2.length; j++) {
if (i == 0) costs[j] = j;
else {
if (j > 0) {
let newValue = costs[j - 1];
if (string1.charAt(i - 1) != string2.charAt(j - 1))
newValue = Math.min(Math.min(newValue, lastValue), costs[j]) + 1;
costs[j - 1] = lastValue;
lastValue = newValue;
}
}
}
if (i > 0) costs[string2.length] = lastValue;
}
return costs[string2.length];
}
function getStringsSimilarity(string1, string2) {
let longer = string1;
let shorter = string2;
string1.length < string2.length
? ((longer = string2), (shorter = string1))
: null;
let maxLength = longer.length;
if (maxLength == 0) {
return 1.0;
}
return (maxLength - getStringsCost(longer, shorter)) / parseFloat(maxLength);
}
module.exports = getStringsSimilarity;