Tìm hiểu hàm array.sort() và cách sử dụng trong Javascript

Admin

Administrator
Thành viên BQT
#1
Tìm hiểu hàm array.sort() và cách sử dụng trong Javascript

Phương thức sort sẽ sắp xếp các phần tử trong một mảng, các phần tử có thể được sắp xếp theo bảng chữ cái hoặc theo chữ số theo thứ tự tăng dần hoặc giảm dần.

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.

Phương thức sort sẽ làm thay đổi mảng ban đầu.

Cú pháp
Cú pháp: array.sort(compareFunction)

Trong đó:
  • compareFunction - là tham số không bắt buộc. Nó là một hàm định nghĩa thứ tự sắp xếp, hàm này nên được trả về giá trị âm, 0 hoặc dương tùy thuộc vào tham số của nó. Khi phương thức sort so sánh 2 giá trị, nó sẽ gửi các giá trị đó đến hàm này, và sắp xếp chúng dựa vào kết quả trả về của hàm này. Để hiểu kĩ hơn, các bạn hãy xem ví dụ.
Cách sử dụng
Ví dụ: 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.
Mã:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <h1>Cộng đồng XenForo Việt Nam</h1>
        <p>Click vào button để kiểm tra.</p>

        <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>
    </body>
</html>
Ví dụ: Sử dụng tham số compareFunction.
Mã:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <h1>Cộng đồng XenForo Việt Nam</h1>
        <p>Click vào button để kiểm tra.</p>

        <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>
    </body>
</html>
Chúc các bạn thành công.


Nguồn: freetuts.net​
 
Top