TopDev

Sắp xếp thứ tự các phần tử trong mảng

minhu 📖 3 phút đọc

Sắp xếp các phần tử trong mảng trong JavaScript có thể thực hiện bằng cách sử dụng phương thức sort(). Dưới đây là cách sử dụng phương thức này cùng với một số ví dụ để bạn có thể sắp xếp mảng theo thứ tự mong muốn.

Phương Thức sort()#

Phương thức sort() sắp xếp các phần tử của mảng tại chỗ và trả về mảng đã được sắp xếp. Mặc định, sort() sắp xếp các phần tử dưới dạng chuỗi theo thứ tự Unicode.

Sắp Xếp Mảng Chuỗi#

Khi làm việc với mảng chuỗi, sort() sẽ sắp xếp các phần tử theo thứ tự từ điển (alphabetical order).

let fruits = ['Banana', 'Apple', 'Cherry', 'Date']; fruits.sort(); console.log(fruits); // ['Apple', 'Banana', 'Cherry', 'Date']

Sắp Xếp Mảng Số#

Khi làm việc với mảng số, bạn cần cung cấp một hàm so sánh (compare function) cho sort() để đảm bảo sắp xếp đúng theo thứ tự số học. Mặc định, sort() chuyển số thành chuỗi và sắp xếp theo thứ tự từ điển, điều này có thể dẫn đến kết quả không chính xác.

let numbers = [10, 5, 100, 1, 20]; numbers.sort((a, b) => a - b); // Sắp xếp theo thứ tự tăng dần console.log(numbers); // [1, 5, 10, 20, 100]

Hàm So Sánh#

Hàm so sánh (compare function) nhận hai đối số và trả về:

  • Một số âm nếu đối số đầu tiên nhỏ hơn đối số thứ hai (để đối số đầu tiên đứng trước).

  • Một số dương nếu đối số đầu tiên lớn hơn đối số thứ hai (để đối số đầu tiên đứng sau).

  • 0 nếu hai đối số bằng nhau.

Ví dụ về sắp xếp theo thứ tự giảm dần:

let numbers = [10, 5, 100, 1, 20]; numbers.sort((a, b) => b - a); // Sắp xếp theo thứ tự giảm dần console.log(numbers); // [100, 20, 10, 5, 1]

Sắp Xếp Mảng Đối Tượng#

Khi làm việc với mảng chứa các đối tượng, bạn có thể sử dụng sort() cùng với hàm so sánh để sắp xếp theo thuộc tính cụ thể của đối tượng.

` let students = [ { name: 'Alice', grade: 90 }, { name: 'Bob', grade: 85 }, { name: 'Charlie', grade: 92 } ];

students.sort((a, b) => a.grade - b.grade); // Sắp xếp theo điểm số console.log(students); // [ // { name: 'Bob', grade: 85 }, // { name: 'Alice', grade: 90 }, // { name: 'Charlie', grade: 92 } // ] `

Sắp Xếp Chuỗi Với So Sánh Đặc Biệt#

Bạn cũng có thể sắp xếp các chuỗi với điều kiện đặc biệt, như không phân biệt chữ hoa chữ thường:

let words = ['banana', 'Apple', 'cherry', 'Date']; words.sort((a, b) => a.localeCompare(b, undefined, { sensitivity: 'base' })); console.log(words); // ['Apple', 'banana', 'cherry', 'Date']

Trong ví dụ này, localeCompare() giúp sắp xếp theo thứ tự từ điển mà không phân biệt chữ hoa chữ thường.

Tóm Tắt#

  • sort(): Sắp xếp các phần tử của mảng tại chỗ theo thứ tự Unicode.

  • Hàm so sánh: Sử dụng hàm so sánh để sắp xếp mảng số hoặc mảng đối tượng theo tiêu chí cụ thể.

  • localeCompare(): Dùng để sắp xếp chuỗi theo thứ tự từ điển với tùy chọn không phân biệt chữ hoa chữ thường.

Sử dụng phương thức sort() cùng với hàm so sánh giúp bạn kiểm soát cách sắp xếp mảng để phù hợp với yêu cầu của ứng dụng.

Bài liên quan trong # JavaScript

✓ Đã sao chép link