123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.findSuggestion = findSuggestion;
- const {
- min
- } = Math;
- function levenshtein(a, b) {
- let t = [],
- u = [],
- i,
- j;
- const m = a.length,
- n = b.length;
- if (!m) {
- return n;
- }
- if (!n) {
- return m;
- }
- for (j = 0; j <= n; j++) {
- t[j] = j;
- }
- for (i = 1; i <= m; i++) {
- for (u = [i], j = 1; j <= n; j++) {
- u[j] = a[i - 1] === b[j - 1] ? t[j - 1] : min(t[j - 1], t[j], u[j - 1]) + 1;
- }
- t = u;
- }
- return u[n];
- }
- function findSuggestion(str, arr) {
- const distances = arr.map(el => levenshtein(el, str));
- return arr[distances.indexOf(min(...distances))];
- }
|