Hướng dẫn dùng arrays.sort JavaScript

Trong bài này chúng ta sẽ tìm hiểu hàm sort trong javascript, đây là hàm dùng để sắp xếp các phần tử trong chính mảng đó, đồng thời sẽ kết quả đã sắp xếp đó vào một mảng mới.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Thứ tự sắp xếp mặc định được tính là tăng dần. Tuy nhiên, bạn có thể can thiệp vào quá trình sắp xếp bằng cách truyền vào nó một hàm callback. Trước khi đi vào học cú pháp thì hãy xem ví dụ dưới đây.

array.sort[]

const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort[];
console.log[months];
// output: Array ["Dec", "Feb", "Jan", "March"]

const array1 = [1, 30, 4, 21, 100000];
array1.sort[];
console.log[array1];
// output: Array [1, 100000, 21, 30, 4]

1. Hàm sort trong javascript là gì?

Hàm sort là một method thuộc đối tượng array trong javascript, được đùng dể sắp xếp các phần tử trong mảng tăng dần hoặc giảm dần theo số thứ tự trong bảng mã ascii, hoặc theo quy tắc trong callback function.

  • Mặc định các phần tử sẽ được sắp xếp theo bảng chữ cái với thứ tự tăng dần, điều này khiến phương thức sort sẽ sắp xếp các chuỗi rất chính xác. Tuy nhiên, khi sắp xếp các số sẽ không được chính xác [ví dụ 20 và 100 thì 20 sẽ lớn hơn 100 vì 2 > 1].
  • Bạn có thể khắc phục điều này bằng việc truyền tham số là một mảng so sánh.
  • Hàm sort sẽ làm thay đổi mảng ban đầu.

Cú pháp sort javascript như sau:

Bài viết này được đăng tại [free tuts .net]

// Functionless
array.sort[]

// Arrow function
array.sort[[firstEl, secondEl] => { ... } ]

// Compare function
array.sort[compareFn]

// Inline compare function
array.sort[function compareFn[firstEl, secondEl] { ... }]

Trong đó: compareFn là tham số không bắt buộc. Đây là một callback function dùng để quyết định thứ tự sắp xếp của các phần tử trong mảng. Hai tham số firstElsecondEl đại diện cho hai phần tử kề nhau trong mảng, và ta sẽ sử dụng nó để quyết định cách sắp xếp.

  • Nếu hàm callback trả về số lớn hơn 0 thì secondEl sẽ đứng trước firstEl.
  • Nếu hàm callback trả về số bé hơn hoặc bằng 0 thì thứ tự được giữ nguyên, tức là firstEl sẽ đứng trước secondEl.

2. Các ví dụ hàm array sort trong javascript

Ví dụ 1: Trường hợp sắp xếp với chuỗi.

const fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort[]; // Apple,Banana,Mango,Orange

Ví dụ 2: Trường hợp sắp xếp với số.

var score = [700, 8, 9, 10, 3];

console.log[score.sort[]];
// Keets Kết quả: [10, 3, 700, 8, 9]

Như bạn thấy, kết quả trả về là sai, bởi hàm sort nó hiểu giữa hai số 3 và 10 thì 3 lớn hơn 1, vì vậy 3 sẽ đứng sau 10.

Để khắc phục thì ta sẽ sử dụng callback function như sau:

var score = [700, 8, 9, 10, 3];

console.log[score.sort[ [firstEl, secondEl] => {
    if [secondEl > firstEl]{
        return -1;
    }
    else {
        return 0;
    }
} ]];

// Kết quả: [3, 8, 9, 10, 700]

Ví dụ 3: Sử dụng hàm sort để so sánh một mảng với các phần tử là các chuỗi.

Run

var subject = ["php", "javascript", "css", "html"]; document.getElementById["demo"].innerHTML = subject; function myFunction[] { subject.sort[]; document.getElementById["demo"].innerHTML = subject; }

Ví dụ 4: Sử dụng tham số compareFn.

Run

var subject = [4, 144, 25, 16]; document.getElementById["demo"].innerHTML = subject; function compare[a, b] { return a - b; } function myFunction[] { subject.sort[compare]; document.getElementById["demo"].innerHTML = subject; }

Như vậy là mình đã hướng dẫn xong cách sử dụng hàm sort trong javascript để sắp xếp mảng tăng dần trong javascript. Hẹn gặp lại các bạn ở các bài tiêp theo nhé.

Chủ Đề