Phương thức localeCompare() trong JavaScript

Phương thức localeCompare() trong JavaScript
Phương thức localeCompare() trong JavaScript

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

Chạy Thử

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
Trần Thị Vân | Content Creator Web Mới
Trần Thị Vân
Trần Thị Vân là Content Creator tại Web Mới, phụ trách nghiên cứu, biên soạn nội dung và chia sẻ kiến thức về website, SEO, lập trình cùng các xu hướng công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Phương thức localeCompare() trong JavaScript
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 *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !