Microsoft JScript toUpperCase返回未知类型

时间:2018-03-26 19:34:15

标签: javascript jscript

我让这个JScript文件进行自然比较排序,不知怎的,这个问题一直在发生:

通过获取文件夹中的所有文件来创建数组,然后我想对其进行排序。对于某些(随机?)文件,第一次比较工作,第二次变量的类型在unknown之后变为.toUpperCase()

我的代码:

function naturalCompare(a, b) {
    var ax = [], bx = [];

    a.toString();
    b.toString();

    a = a + "";
    b = b + "";

    a = a.toUpperCase();
    b = b.toUpperCase();


    a.replace(/(\d+)|(\D+)/g, function(_, $1, $2) { ax.push([$1 || Infinity, $2 || ""]) });
    b.replace(/(\d+)|(\D+)/g, function(_, $1, $2) { bx.push([$1 || Infinity, $2 || ""]) });

    while(ax.length && bx.length) {
        var an = ax.shift();
        var bn = bx.shift();
        var nn = (an[0] - bn[0]) || an[1].localeCompare(bn[1]);
        if(nn) return nn;
    }
    return ax.length - bx.length;
}

我复制了这个(dunno在哪里)。通常它起作用,这只是刚才发生的。

是的,unknown,而不是undefined

1 个答案:

答案 0 :(得分:0)

所以,似乎是一些带有一些文件名的东西,它只发生在这个特定的文件夹中,该文件夹包含来自html的名称可能是问题的文件。

无论如何,感谢所有的帮助,我只会让那几个文件成为。