UNPKG

state-advice

Version:

This will auto-correct the indian state

42 lines (35 loc) 1.09 kB
"use strict"; 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;