UNPKG

state-advice

Version:

This will auto-correct the indian state

39 lines (35 loc) 1.07 kB
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;