Javascript字符串排序

Javascript String Sorting

本文关键字:排序 字符串 Javascript      更新时间:2023-09-26

当涉及到字符串时,我正试图用Javascript进行排序。好的,我这里有这个功能:

var numericalOrder = function(array){
    if(arguments.length === 0 || !Array.isArray(array)){
        throw new Error();
    }
    var anyChange;
    for(var i = 0; i < array.length - 1; i++){
        anyChange = false;
        for(var x = 0; x < array.length - 1; x++){
            if(array[x] > array[x + 1]){
                anyChange = true;
                var temp = array[x];
                array[x] = array[x + 1];
                array[x + 1] = temp;
            }
        }
        if(!anyChange){
            return array;
        }
    }
    return array;
};

当给定一个数字数组时,函数会按数字顺序排列值,但我感到困惑的是,这个函数是如何按字母顺序排列字符串数组的。我知道javascript中有一个数组sort()方法,但我正在努力完全理解这个概念。感谢您的帮助:)!

>可以比较字符串,因此即使数组成员是字符串,函数也能工作。

'a'>'b' === false 'c'>'b' === true

您的函数将对数字和字符串进行排序,因为JavaScript将尝试使用>运算符比较任何两个变量,并尽最大努力确保比较有意义。它甚至会尽可能地将操作数的类型强制为"类似"类型。因此,如果你比较"a">1,它会在进行比较之前将1变成字符串"1"。但如果你比较"0">1,我相信在进行比较之前,它会把"0"变成0。这种类型转换在JavaScript中一直发生,导致一些非常奇怪的结果,例如"false"===true:)

如果你想比较字符串,你可以使用".charCodeAt()(获取字符的ascii号),但我会直接比较这两个字符串,因为"before"<"after"===false