Phương thức localeCompare() trong JavaScript
Trần Thị Vân
- 958
- 31/08/2025
Chức năng của Phương thức localeCompare() trong JavaScript
Phương thức localeCompare() trong JavaScript dùng để so sánh 2 chuỗi với nhau theo chữ cái đầu tiên của chuỗi và sắp xếp theo bảng chữ cái, nó phân biết chữ hoa chữ thường, chữ thường đứng trước chữ hoa, nếu ký tự đầu bằng nhau thì sẽ so sánh tiếp ký tự kế tiếp.
Cú pháp của Phương thức localeCompare() trong JavaScript
chuoithamchieu.localeCompare(chuoisosanh)
chuoithamchieu: Chuỗi tham chiếu.
chuoisosanh: Chuỗi so sánh.
Nếu kết quả bằng -1 thì chuỗi tham chiếu đứng trước chuỗi so sánh.
Nếu kết quả bằng 1 thì chuỗi tham chiếu đứng sau chuỗi so sánh.
Nếu kết quả bằng 0 thì chuỗi tham chiếu bằng chuỗi so sánh.
Code Phương thức localeCompare() trong JavaScript
<script>
var c = "c";
var bienCHoa = "C";
var d = "d";
var e = "e";
var van = "Vân";
var luc = "Lực";
var ab = "ab";
var ac = "ac";
// chuỗi tham chiếu c, chuỗi so sánh d
document.write("<b>chuỗi tham chiếu c, chuỗi so sánh d</b><br>");
document.write(c.localeCompare(d)+"<br>"); // Kết quả: -1 c đứng trước d
// chuỗi tham chiếu d, chuỗi so sánh c
document.write("<b>chuỗi tham chiếu d, chuỗi so sánh c</b><br>");
document.write(d.localeCompare(c)+"<br>"); // Kết quả: 1 c đứng trước d
// chuỗi tham chiếu c, chuỗi so sánh c
document.write("<b>chuỗi tham chiếu c, chuỗi so sánh c</b><br>");
document.write(c.localeCompare(c)+"<br>"); // Kết quả: 0 c bằng c
// chuỗi tham chiếu c, chuỗi so sánh bienCHoa
document.write("<b>chuỗi tham chiếu c, chuỗi so sánh bienCHoa</b><br>");
document.write(c.localeCompare(bienCHoa)+"<br>"); // Kết quả: -1 c đứng C
// chuỗi tham chiếu Lực, chuỗi so sánh Vân
document.write("<b>chuỗi tham chiếu Lực, chuỗi so sánh Vân</b><br>");
document.write(luc.localeCompare(van)+"<br>"); // Kết quả: -1 Lực đứng trước Vân
// chuỗi tham chiếu ab, chuỗi so sánh ac
document.write("<b>chuỗi tham chiếu ab, chuỗi so sánh ac</b><br>");
document.write(ab.localeCompare(ac)+"<br>"); // Kết quả: -1 ab đứng trước ac
</script>
Kết quả:
chuỗi tham chiếu c, chuỗi so sánh d
-1
chuỗi tham chiếu d, chuỗi so sánh c
1
chuỗi tham chiếu c, chuỗi so sánh c
0
chuỗi tham chiếu c, chuỗi so sánh bienCHoa
-1
chuỗi tham chiếu Lực, chuỗi so sánh Vân
-1
chuỗi tham chiếu ab, chuỗi so sánh ac
-1
Cách sử dụng localeCompare() để sắp xếp chuỗi trong JavaScript
Ngoài việc kiểm tra thứ tự giữa hai chuỗi, localeCompare() còn rất hữu ích khi cần sắp xếp danh sách văn bản. Khi kết hợp với sort(), phương thức này giúp xử lý thứ tự chuỗi theo quy tắc ngôn ngữ thay vì chỉ dựa vào mã ký tự.
Sắp xếp mảng chuỗi theo thứ tự bảng chữ cái
Có thể truyền localeCompare() vào hàm sort() để sắp xếp trực tiếp một mảng chuỗi. Cách này đặc biệt phù hợp với danh sách tên, tiêu đề hoặc các giá trị dạng văn bản.
const names = ["David", "Alice", "Charlie", "Bob"];
names.sort((a, b) => a.localeCompare(b));
console.log(names);
Kết quả là các phần tử được sắp xếp theo thứ tự tăng dần. Nếu muốn sắp xếp theo chiều ngược lại, chỉ cần đảo vị trí hai chuỗi trong phép so sánh:
names.sort((a, b) => b.localeCompare(a));
Sắp xếp chuỗi tiếng Việt bằng localeCompare()
Với dữ liệu tiếng Việt, localeCompare() có ưu điểm rõ rệt khi cần sắp xếp theo quy tắc của ngôn ngữ. Có thể chỉ định locale vi để JavaScript thực hiện việc so sánh phù hợp hơn với tiếng Việt.
const names = ["Lan", "Ánh", "Bình", "Chi"];
names.sort((a, b) => a.localeCompare(b, "vi"));
console.log(names);
Cách này hữu ích khi xây dựng danh sách người dùng, danh mục sản phẩm hoặc nội dung có nhiều ký tự tiếng Việt. Thay vì tự xây dựng quy tắc sắp xếp, có thể tận dụng cơ chế so sánh theo locale được cung cấp sẵn.
Kết hợp localeCompare() với hàm sort()
Khi xử lý mảng đối tượng, localeCompare() có thể được dùng để so sánh một thuộc tính dạng chuỗi. Ví dụ, danh sách sản phẩm có thể được sắp xếp theo tên như sau:
const products = [
{ name: "Bàn", price: 500000 },
{ name: "Áo", price: 250000 },
{ name: "Điện thoại", price: 5000000 }
];
products.sort((a, b) => a.name.localeCompare(b.name, "vi"));
console.log(products);
Cách kết hợp này giúp việc sắp xếp dữ liệu rõ ràng hơn, đồng thời có thể áp dụng cho nhiều trường hợp thực tế như danh sách khách hàng, bài viết, sản phẩm hoặc menu. Nếu dữ liệu có yêu cầu riêng về chữ hoa, chữ thường hay cách xử lý ký tự, có thể truyền thêm options vào localeCompare() để kiểm soát kết quả so sánh.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Phương thức localeCompare() trong JavaScript.
- 0 Bình luận
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *