JSFiddle - React, Tailwind, and code Playground
by SerGen
HTML
<input type="text" id="kek">
<div id="output"></div>
JavaScript
var levenshteinWeighted= function(seq1,seq2)
{
var len1=seq1.length;
var len2=seq2.length;
var i, j;
var dist;
var ic, dc, rc;
var last, old, column;
var weighter={
insert:function(c) { return .5; },
delete:function(c) { return .5; },
replace:function(c, d) { return 1; }
};
/* don't swap the sequences, or this is gonna be painful */
if (len1 == 0 || len2 == 0) {
dist = 0;
while (len1)
dist += weighter.delete(seq1[--len1]);
while (len2)
dist += weighter.insert(seq2[--len2]);
return dist;
}
column = []; // malloc((len2 + 1) * sizeof(double));
//if (!column) return -1;
column[0] = 0;
for (j = 1; j <= len2; ++j)
column[j] = column[j - 1] + weighter.insert(seq2[j - 1]);
for (i = 1; i <= len1; ++i) {
last = column[0]; /* m[i-1][0] */
column[0] += weighter.delete(seq1[i - 1]); /* m[i][0] */
for (j = 1; j <= len2; ++j) {
old = column[j];
if (seq1[i - 1] == seq2[j - 1]) {
column[j] = last; /* m[i-1][j-1] */
} else {
ic = column[j - 1] + weighter.insert(seq2[j - 1]); /* m[i][j-1] */
dc = column[j] + weighter.delete(seq1[i - 1]); /* m[i-1][j] */
rc = last + weighter.replace(seq1[i - 1], seq2[j - 1]); /* m[i-1][j-1] */
column[j] = ic < dc ? ic : (dc < rc ? dc : rc);
}
last = old;
}
}
dist = column[len2];
return dist;
};
var set = [
'aboutО компании',
'Product__cardКарточка товара',
'Product__listСписок товаров',
'indexГлавная страница',
'tmpУниверсальные компоненты',
'web_pushОтправка пуш-уведомлений о разнообразных важных событиях',
'action_cardКарточка акции',
'actionsСписок акций',
'business_classТовары бизнес-класса',
'design_projectДизайн-проект',
'feedback_mailПисьмо в обратной связи',
'om_leave_reviewОтзыв...