ACIL FM
Dark
Refresh
Current DIR:
/home/benbot/bot/server/node_modules/fast-levenshtein
/
home
benbot
bot
server
node_modules
fast-levenshtein
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
levenshtein.js
3.84 MB
chmod
View
DL
Edit
Rename
Delete
LICENSE.md
1.07 MB
chmod
View
DL
Edit
Rename
Delete
package.json
998 B
chmod
View
DL
Edit
Rename
Delete
README.md
3.33 MB
chmod
View
DL
Edit
Rename
Delete
Edit file: /home/benbot/bot/server/node_modules/fast-levenshtein/levenshtein.js
(function() { 'use strict'; var collator; try { collator = (typeof Intl !== "undefined" && typeof Intl.Collator !== "undefined") ? Intl.Collator("generic", { sensitivity: "base" }) : null; } catch (err){ console.log("Collator could not be initialized and wouldn't be used"); } // arrays to re-use var prevRow = [], str2Char = []; /** * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance. */ var Levenshtein = { /** * Calculate levenshtein distance of the two strings. * * @param str1 String the first string. * @param str2 String the second string. * @param [options] Additional options. * @param [options.useCollator] Use `Intl.Collator` for locale-sensitive string comparison. * @return Integer the levenshtein distance (0 and above). */ get: function(str1, str2, options) { var useCollator = (options && collator && options.useCollator); var str1Len = str1.length, str2Len = str2.length; // base cases if (str1Len === 0) return str2Len; if (str2Len === 0) return str1Len; // two rows var curCol, nextCol, i, j, tmp; // initialise previous row for (i=0; i<str2Len; ++i) { prevRow[i] = i; str2Char[i] = str2.charCodeAt(i); } prevRow[str2Len] = str2Len; var strCmp; if (useCollator) { // calculate current row distance from previous row using collator for (i = 0; i < str1Len; ++i) { nextCol = i + 1; for (j = 0; j < str2Len; ++j) { curCol = nextCol; // substution strCmp = 0 === collator.compare(str1.charAt(i), String.fromCharCode(str2Char[j])); nextCol = prevRow[j] + (strCmp ? 0 : 1); // insertion tmp = curCol + 1; if (nextCol > tmp) { nextCol = tmp; } // deletion tmp = prevRow[j + 1] + 1; if (nextCol > tmp) { nextCol = tmp; } // copy current col value into previous (in preparation for next iteration) prevRow[j] = curCol; } // copy last col value into previous (in preparation for next iteration) prevRow[j] = nextCol; } } else { // calculate current row distance from previous row without collator for (i = 0; i < str1Len; ++i) { nextCol = i + 1; for (j = 0; j < str2Len; ++j) { curCol = nextCol; // substution strCmp = str1.charCodeAt(i) === str2Char[j]; nextCol = prevRow[j] + (strCmp ? 0 : 1); // insertion tmp = curCol + 1; if (nextCol > tmp) { nextCol = tmp; } // deletion tmp = prevRow[j + 1] + 1; if (nextCol > tmp) { nextCol = tmp; } // copy current col value into previous (in preparation for next iteration) prevRow[j] = curCol; } // copy last col value into previous (in preparation for next iteration) prevRow[j] = nextCol; } } return nextCol; } }; // amd if (typeof define !== "undefined" && define !== null && define.amd) { define(function() { return Levenshtein; }); } // commonjs else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) { module.exports = Levenshtein; } // web worker else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') { self.Levenshtein = Levenshtein; } // browser main thread else if (typeof window !== "undefined" && window !== null) { window.Levenshtein = Levenshtein; } }());
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply