ARRAY FUNCTION
NUMBER FUNCTION
STRING FUNCTION
DATE / TIME FUNCTION
MATH FUNCTION
GLOBAL FUNCTION
BOOLEAN FUNCTION
DOM FUNCTION
appendChild Javascript parentElement Javascript parentNode Javascript insertAfter Javascript insertBefore javascript innerHTML Javascript insertAdjacentHTML javascript nextSibling javascript activeElement Javascript adoptNode Javascript anchors Javascript baseURI Javascript Document.body Javascript characterSet Javascript createAttribute Javascript Hàm document.createComment() trong Javascript Hàm document.createDocumentFragment() trong Javascript Hàm document.createElement() trong Javascript Hàm document.createTextNode() trong Javascript Hàm document.doctype trong Javascript Hàm document.documentElement trong Javascript Hàm document.documentMode trong Javascript Hàm document.documentURI trong Javascript Hàm document.domain trong Javascript Hàm document.embeds trong Javascript Hàm document.forms trong Javascript Hàm document.hasFocus() trong Javascript Hàm document.head trong Javascript Hàm document.images trong Javascript Hàm document.implementation trong Javascript Hàm document.importNode() trong Javascript Hàm document.inputEncoding trong Javascript Hàm document.lastModified trong Javascript Hàm document.links trong Javascript Hàm document.normalize() trong Javascript Hàm document.scripts trong Javascript Hàm document.querySelector() trong Javascript Hàm document.readyState trong Javascript Hàm document.removeEventListener() trong Javascript Hàm document.querySelectorAll() trong Javascript Hàm document.title trong Javascript Hàm document.URL trong Javascript Hàm document.write() trong Javascript Hàm document.writeln() trong Javascript Hàm document.getElementById() trong Javascript Hàm document.getElementsByClassName() trong Javascript Hàm document.getElementsByName() trong Javascript Hàm document.getElementsByTagName() trong Javascript
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Hàm array.sort() trong 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.

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.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
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:

// 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.

Code RUN
<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.

Code RUN
<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é.

Cùng chuyên mục:

Cách gộp hai object javascript lại với nhau

Cách gộp hai object javascript lại với nhau

Cách lấy chiều dài của object trong Javascript

Cách lấy chiều dài của object trong Javascript

Hướng dẫn giải phương trình bậc 1 bằng Javascript

Hướng dẫn giải phương trình bậc 1 bằng Javascript

Cách dùng nextSibling trong javascript

Cách dùng nextSibling trong javascript

Cách dùng insertAdjacentHTML trong javascript

Cách dùng insertAdjacentHTML trong javascript

Cách dùng innerHTML trong Javascript

Cách dùng innerHTML trong Javascript

Cách dùng insertBefore trong javascript

Cách dùng insertBefore trong javascript

Cách dùng insertAfter trong Javascript

Cách dùng insertAfter trong Javascript

Cách dùng parentNode trong Javascript

Cách dùng parentNode trong Javascript

Cách dùng parentElement trong Javascript

Cách dùng parentElement trong Javascript

Tính tổng các phần tử trong mảng javascript

Tính tổng các phần tử trong mảng javascript

Tính tổng hai số bằng Javascript (cộng hai số)

Tính tổng hai số bằng Javascript (cộng hai số)

Cách gán giá trị cho thẻ input trong javascript

Cách gán giá trị cho thẻ input trong javascript

Để gán giá trị cho thẻ input thì ta có hai cách, thứ nhất là…

Cách kiểm tra số nguyên âm trong javascript

Cách kiểm tra số nguyên âm trong javascript

Cách kiểm tra số nguyên dương trong javascript

Cách kiểm tra số nguyên dương trong javascript

Hàm closure trong javascript

Hàm closure trong javascript

Closure là một khái niệm không phải ai cũng ..

Biểu thức chính quy RegEx trong Javascript

Biểu thức chính quy RegEx trong Javascript

Bài này chúng ta sẽ tìm hiểu đến chuỗi và cách sử dụng biểu thức…

Cách dùng Import / Export Module trong javascript

Cách dùng Import / Export Module trong javascript

Khi bạn xây dựng một ứng dụng nhỏ thì việc đặt

Cơ chế hoạt động của hoisting trong Javascript

Cơ chế hoạt động của hoisting trong Javascript

Hoisting là vấn đề liên quan đến cách khai báo biến trong Javascript. Nó liên…

Cấp độ private / protected của class trong Javascript

Cấp độ private / protected của class trong Javascript

Top