state-advice
Version:
This will auto-correct the indian state
42 lines (35 loc) • 1.09 kB
JavaScript
;
const _ = require("lodash");
const getStringsSimilarity = require("./LevenshteinDistance");
const ACCEPTABLE_PECENTAGE = 0.5;
function getSimilaritiesFromDataset(p, q, count) {
count = count || 1;
if (count <= q.length && count != 0 && count != undefined && count) {
var similarities = [];
q.forEach(function(element) {
similarities.push({
name: element,
percentage: getStringsSimilarity(p, element)
});
}, this);
similarities = _.sortBy(similarities, ["percentage"]);
var required = [];
for (
var i = similarities.length - 1;
i > similarities.length - (count + 1);
i--
) {
if (similarities[i].percentage >= ACCEPTABLE_PECENTAGE) {
required.push(similarities[i]);
}
}
return required.length ? required[0] : null;
}
}
function matchesFinder(p, q, count) {
p = p.toLowerCase();
return Array.isArray(p) === false && Array.isArray(q) === false
? getStringsSimilarity(p, q)
: getSimilaritiesFromDataset(p, q, count);
}
module.exports = matchesFinder;