Rate this post

Sort trong JavaScript là một hàm có sẵn trong JavaScript Array object, cho phép bạn sắp xếp một mảng theo thứ tự tăng dần hoặc giảm dần. Khi gọi hàm sort() trên một mảng, nó sẽ thay đổi giá trị của mảng gốc và trả về mảng đã được sắp xếp.

Các bài viết liên quan:

Tại sao nên sử dụng hàm sort() ?

  1. Sắp xếp dữ liệu: Sử dụng hàm sort() giúp bạn sắp xếp dữ liệu theo thứ tự tăng dần hoặc giảm dần, giúp cho việc xử lý dữ liệu trở nên dễ dàng hơn.
  2. Tìm kiếm nhanh hơn: Khi dữ liệu được sắp xếp, việc tìm kiếm sẽ trở nên nhanh hơn vì bạn có thể sử dụng các thuật toán tìm kiếm như binary search.
  3. Xử lý dữ liệu theo thứ tự: Hàm sort() giúp bạn xử lý dữ liệu theo thứ tự tùy chọn, ví dụ sắp xếp danh sách khách hàng theo tên hoặc tuổi.
  4. Tối ưu hóa việc xử lý dữ liệu: Sử dụng hàm sort() có thể giúp bạn tối ưu hóa việc xử lý dữ liệu bằng cách sắp xếp các phần tử theo thứ tự tùy chọn, giúp cho việc thao tác và xử lý dữ liệu trở nên dễ dàng hơn.
  5. Tạo ra các bảng xếp hạng hoặc sắp xếp theo thứ tự ưu tiên: Sử dụng hàm sort() cho phép bạn tạo ra các bảng xếp hạng hoặc sắp xếp các phần tử theo thứ tự ưu tiên, giúp cho việc quản lý dữ liệu trở nên dễ dàng hơn.
  6. Tạo ra các báo cáo: Hàm sort() cho phép bạn sắp xếp dữ liệu theo thứ tự tùy chọn, giúp bạn tạo ra các báo cáo với dữ liệu được sắp xếp theo thứ tự tùy chọn, giúp cho việc thống kê và phân tích dữ liệu trở nên dễ dàng hơn.

Sử dụng Sort trong JavaScript như thế nào ?

Sử dụng hàm sort() trong JavaScript rất đơn giản, bạn chỉ cần gọi hàm này trên một mảng và nó sẽ trả về mảng đã được sắp xếp.

Ví dụ:

const numbers = [3, 1, 4, 2, 5];

numbers.sort();

console.log(numbers); // Output: [1, 2, 3, 4, 5]

Nếu bạn muốn sắp xếp theo thứ tự giảm dần, bạn có thể sử dụng hàm sort() với một hàm so sánh như sau:

const numbers = [3, 1, 4, 2, 5];

numbers.sort((a, b) => b - a);

console.log(numbers); // Output: [5, 4, 3, 2, 1]

const numbers = [3, 1, 4, 2, 5];

numbers.sort((a, b) => b - a);

console.log(numbers); // Output: [5, 4, 3, 2, 1]

Trong ví dụ trên, hàm so sánh (a, b) => b – a sắp xếp các phần tử trong mảng numbers theo thứ tự giảm dần.

Bạn cũng có thể sử dụng hàm sort() với các object hoặc mảng lồng nhau, tuy nhiên bạn cần truyền vào một hàm so sánh để xác định cách sắp xếp các phần tử.

Ví dụ:

const people = [

    {name: 'John', age: 30},

    {name: 'Mike', age: 25},

    {name: 'Sarah', age: 35}

];

people.sort((a, b) => a.age - b.age);

console.log(people);

// Output: [{name: 'Mike', age: 25}, {name: 'John', age: 30}, {name: 'Sarah', age: 35}]

Trong ví dụ trên, hàm so sánh (a, b) => a.age – b.age sắp xếp các phần tử trong mảng people theo tuổi.

Ngoài ra, còn có một số hàm hỗ trợ tương tự như Array.prototype.reverse() cho phép đảo ngược mảng, Array.prototype.slice() cho phép lấy một phần của mảng v.v. để tối ưu hóa việc sắp xếp mảng theo ý muốn.

Những lưu ý khi sử dụng  hàm sort()

  1. Hàm sort() làm thay đổi mảng gốc: Khi gọi hàm sort() trên một mảng, nó sẽ thay đổi mảng gốc. Nếu bạn muốn giữ lại mảng gốc không đổi, bạn nên sử dụng hàm slice() hoặc spread operator để tạo ra một bản sao của mảng gốc trước khi sắp xếp.
  2. Hàm sort() không hỗ trợ kiểu dữ liệu khác ngoài số và chuỗi: Nếu mảng chứa các phần tử kiểu dữ liệu khác ngoài số và chuỗi, hàm sort() sẽ không hoạt động đúng cách. Trong trường hợp này, bạn cần truyền vào một hàm so sánh để xác định cách sắp xếp.
  3. Hàm sort() không hỗ trợ sắp xếp theo thứ tự Unicode: Mặc định, hàm sort() sắp xếp theo thứ tự ASCII, nếu bạn muốn sắp xếp theo thứ tự Unicode, bạn cần truyền vào một hàm so sánh và sử dụng các hàm hỗ trợ như localeCompare() để xác định thứ tự Unicode.
  1. Hàm sort() không hỗ trợ sắp xếp theo thứ tự tiếng Việt: Tương tự như trường hợp sắp xếp theo thứ tự Unicode, hàm sort() mặc định không hỗ trợ sắp xếp theo thứ tự tiếng Việt, bạn cần sử dụng các hàm hỗ trợ để xác định thứ tự tiếng Việt.
  2. Hàm sort() không hỗ trợ sắp xếp mảng lồng nhau: Nếu mảng chứa các mảng con hoặc các object, hàm sort() sẽ không hoạt động đúng cách, bạn cần truyền vào một hàm so sánh để xác định cách sắp xếp mảng con hoặc object.
  3. Hàm sort() sắp xếp theo thứ tự chuẩn hoá: Trong trường hợp sắp xếp chuỗi, hàm sort() sẽ sắp xếp theo thứ tự chuẩn hoá (Unicode Normalization Form) của chuỗi.

Các trường hợp thường sử dụng hàm sort() trong JavaScript 

  1. Sắp xếp mảng số:
const numbers = [4, 2, 9, 1, 5];

numbers.sort();

console.log(numbers); // Output: [1, 2, 4, 5, 9]
  1. Sắp xếp mảng chuỗi:
const words = ['apple', 'dog', 'cat', 'banana'];

words.sort();

console.log(words); // Output: ['apple', 'banana', 'cat', 'dog']
  1. Sắp xếp mảng đối tượng theo thuộc tính:
const people = [

    {name: 'John', age: 30},

    {name: 'Mike', age: 25},

    {name: 'Sarah', age: 35}

];

people.sort((a, b) => a.age - b.age);

console.log(people); // Output: [{name: 'Mike', age: 25}, {name: 'John', age: 30}, {name: 'Sarah', age: 35}]
  1. Sắp xếp mảng số theo thứ tự ngược:
const numbers = [4, 2, 9, 1, 5];

numbers.sort((a, b) => b - a);

console.log(numbers); // Output: [9, 5, 4, 2, 1]
  1. Sắp xếp mảng chuỗi theo thứ tự tiếng Việt:
const words = ['xanh', 'đỏ', 'vàng', 'cam'];

words.sort((a, b) => a.localeCompare(b, 'vi'));

console.log(words); // Output: ['cam', 'đỏ', 'vàng', 'xanh']

Các ví dụ trên chỉ là một số trường hợp cơ bản của hàm sort() trong JavaScript, bạn có thể tùy chỉnh hàm so sánh để sắp xếp theo yêu cầu.

Kết luận 

Trong JavaScript, hàm sort() là một hàm quan trọng của Array object, nó cho phép bạn sắp xếp mảng theo thứ tự tăng dần hoặc giảm dần. Hàm sort() có thể sắp xếp các phần tử kiểu số và chuỗi, nhưng không hỗ trợ các kiểu dữ liệu khác.

Bạn cần lưu ý rằng hàm sort() sẽ thay đổi mảng gốc, nếu bạn muốn giữ lại mảng gốc không đổi, bạn nên sử dụng hàm slice() hoặc spread operator để tạo ra một bản sao của mảng gốc trước khi sắp xếp.

Trả lời

Email 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 *

Contact Me on Zalo
Call now