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.
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ố firstEl và secondEl đạ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.
2. Các ví dụ hàm array sort trong javascriptVí 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. <button onclick="myFunction()">Run</button> <p id="demo"></p> <script> var subject = ["php", "javascript", "css", "html"]; document.getElementById("demo").innerHTML = subject; function myFunction() { subject.sort(); document.getElementById("demo").innerHTML = subject; } </script> Ví dụ 4: Sử dụng tham số compareFn. <button onclick="myFunction()">Run</button> <p id="demo"></p> <script> 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; } </script> 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é. |