Javascript Function: array.sort()

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áparray.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.

Code RUN
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
	</head>
	<body>
		<h1>Học lập trình miễn phí tại freetuts.net</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.

Code RUN
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
	</head>
	<body>
		<h1>Học lập trình miễn phí tại freetuts.net</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>

Tham khảo: w3schools.com

Nguồn: freetuts.net