按字典順序比較字串
要按字母順序比較字串,請使用 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" ]