小编Mar*_*Wit的帖子

什么是最频繁使用的levenshtein算法

对于客户端搜索工具,我需要找到一个单词的Levenshtein距离以及数百万个其他单词.用户应该能够将大约二十个单词的短文与一本书进行比较.用户可以通过查找书中文本的最具特征的单词的位置来做到这一点."寻找位置"并不意味着寻找完全匹配,但几乎与levenshtein匹配.我从已经可用的实现开始,但我需要更快的速度.我最终得到了这个:

var rowA = new Uint16Array(1e6);
var rowB = new Uint16Array(1e6);
function levenshtein(s1, s2) {
    var s1_len = s1.length, s2_len = s2.length, i1, i2 = 0, a, b, c, c2, i = 0;
    if (s1_len === 0)
        return s2_len;
    if (s2_len === 0)
        return s1_len;
    while (i < s1_len)
        rowA[i] = ++i;
    while (i2 < s2_len) {
        c2 = s2[i2];
        a = i2;
        ++i2;
        b = i2;
        for (i1 = 0; i1 < s1_len; ++i1) {
            c = a + …
Run Code Online (Sandbox Code Playgroud)

javascript algorithm levenshtein-distance

7
推荐指数
1
解决办法
416
查看次数

如何获取 Javascript BigInt 除法的有效数和指数结果

我想将两个 BigInt 数字相除并得到一些有效数字和指数的结果。到目前为止我已经得到了这个:

f = (numerator, denominator, significantsLength) => {
      const denominatorLength = ('' + denominator).length
      const extension = significantsLength + denominatorLength
      const extendedNumerator = numerator * 10n ** BigInt(extension)
      const div = extendedNumerator / denominator
      const divLength = ('' + div).length
      const digitsSurplus = divLength - significantsLength
      const significants = div / 10n ** BigInt(digitsSurplus)
      const exponent = digitsSurplus - extension
      return significants + 'e' + exponent
    }
Run Code Online (Sandbox Code Playgroud)

所以f(1n,3n,3)结果是'333e-3'

还能更好吗?此代码不进行四舍五入。它也不适用于零和负数。

javascript bigint

5
推荐指数
1
解决办法
277
查看次数

什么是正确的Javascript运算符优先级表?

如果我在Firefox上运行以下代码,我会收到一个错误:

new Number.toString;
Run Code Online (Sandbox Code Playgroud)

但根据MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence new Number应首先进行评估.所以表格我认为不正确.

我们来看看MSDN:http://msdn.microsoft.com/en-us/library/z3ks45k7(v = vs.94).aspx.在表格上方写道,操作员从左到右进行评估.但:

a=1;
b=a=2;
Run Code Online (Sandbox Code Playgroud)

现在b具有值2,表示从右到左的评估.所以这个优先表也不正确.

谁能给我一张正确的桌子?

javascript operators operator-precedence

4
推荐指数
1
解决办法
2809
查看次数

最快的通用Levenshtein Javascript实现

我正在寻找Javascript中的通用Levenshtein实现。它必须快速并且对短字符串和长字符串有用。它也应该多次使用(因此进行缓存)。最重要的是,它计算出一个简单的Levenshtein距离。我想出了这个:

var levenshtein = (function() {
    var row2 = [];
    return function(s1, s2) {
        if (s1 === s2) {
            return 0;
        } else {
            var s1_len = s1.length, s2_len = s2.length;
            if (s1_len && s2_len) {
                var i1 = 0, i2 = 0, a, b, c, c2, row = row2;
                while (i1 < s1_len)
                    row[i1] = ++i1;
                while (i2 < s2_len) {
                    c2 = s2.charCodeAt(i2);
                    a = i2;
                    ++i2;
                    b = i2;
                    for (i1 = 0; i1 < s1_len; ++i1) …
Run Code Online (Sandbox Code Playgroud)

javascript levenshtein-distance

3
推荐指数
1
解决办法
1039
查看次数

格式化第三方导入和其他导入之间的空行

在反应组件中,我正在导入一些第三方模块和其他模块。有没有办法 Webstorm、Prettier、Eslint 或其他东西会检查甚至格式化第三方导入和其他导入之间的空行?

我已经找到了如何对导入进行排序,以便将第三方导入放在首位。

我找到了我的答案。现在如何在脚本和资产导入之间插入换行符?

javascript import formatting ecmascript-6 eslint

2
推荐指数
1
解决办法
1465
查看次数

负零是假值吗?

我还没有发现任何关于 Javascript 中的虚假值的讨论或文章,其中在我看到!!-0yielding 时提到了负零false。这是为什么?

更新:我觉得现在大部分作者总结falsy值不知道或者-0是一个值或平均值0+0-0

javascript zero

2
推荐指数
1
解决办法
125
查看次数