Các localeCompare() phương thức trả về một số chỉ định một chuỗi tham khảo đến trước, hoặc sau, hoặc là giống như các chuỗi được đưa ra trong thứ tự sắp xếp. Điều này trả về giá trị âm nếu chuỗi tham chiếu là từ vựng (theo thứ tự bảng chữ cái) trước chuỗi được so sánh (tham số), giá trị dương nếu đến sau và giá trị 0 nếu chúng bằng nhau.
var a = "hello";
var b = "world";
console.log(a.localeCompare(b)); // -1
Các toán tử > và < cũng có thể được sử dụng để so sánh các chuỗi về mặt từ vựng, nhưng chúng không thể trả về giá trị 0 (điều này có thể được kiểm tra bằng toán tử bình đẳng ==). Kết quả là, một dạng của hàm localeCompare () có thể được viết như sau:
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
Điều này đặc biệt hữu ích khi sử dụng hàm sắp xếp so sánh dựa trên dấu của giá trị trả về (chẳng hạn như sắp xếp).
var arr = ["bananas", "cranberries", "apples"];
arr.sort(function(a,b) {
return a.localeCompare(b) ;
});
console.log(arr); // [ "apples", "bananas", "cranberries" ]
Tham khảo GoalKicker.com
Dịch: Devmaster Academy