按字典順序比較字串

要按字母順序比較字串,請使用 localeCompare() 。如果引用字串在比較字串(引數)之前按字典順序(按字母順序),如果之後出現正值,則返回負值,如果它們相等則返回值 0

var a = "hello";
var b = "world";

console.log(a.localeCompare(b)); // -1

>< 運算子也可用於按字典順序比較字串,但它們不能返回零值(這可以使用 == 相等運算子進行測試)。因此,localeCompare() 函式的一種形式可以這樣寫:

function strcmp(a, b) {
    if(a === b) {
        return 0;
    }

    if (a > b) {
        return 1;
    }

    return -1;
}

console.log(strcmp("hello", "world")); // -1
console.log(strcmp("hello", "hello")); //  0
console.log(strcmp("world", "hello")); //  1

當使用基於返回值的符號(例如 sort)進行比較的排序函式時,這尤其有用。

var arr = ["bananas", "cranberries", "apples"];
arr.sort(function(a, b) {
    return a.localeCompare(b);
});
console.log(arr); // [ "apples", "bananas", "cranberries" ]