Files
frontend-app-authn/src/redesign/register/utils.js
2021-07-27 16:57:14 +05:00

21 lines
590 B
JavaScript

import { distance } from 'fastest-levenshtein';
export default function getLevenshteinSuggestion(word, knownWords, similarityThreshold = 4) {
if (!word) {
return null;
}
let minEditDistance = 100;
let mostSimilar = word;
for (let i = 0; i < knownWords.length; i++) {
const editDistance = distance(knownWords[i].toLowerCase(), word.toLowerCase());
if (editDistance < minEditDistance) {
minEditDistance = editDistance;
mostSimilar = knownWords[i];
}
}
return minEditDistance <= similarityThreshold && word !== mostSimilar ? mostSimilar : null;
}