JavaScript Hướng dẫn - Sắp xếp Numeric Array
Trong Javascript mỗi khi bạn muốn sắp xếp một mảng được sắp xếp theo bảng chữ cái đó được. Điều này có nghĩa rằng con số được sắp xếp trên cơ sở chữ số đầu tiên xảy ra trong hệ thống số (1-9) và không bằng cách so sánh giá trị. Vì vậy, nếu tôi muốn sắp xếp một mảng có giá trị được sắp xếp để 10,12,11,20,2,25,30 10,12,11,20,2,25,30 sử dụng inbuilt JavaScript cách sắp xếp mảng.
Ví dụ - Phương pháp Phân loại truyền thống Array
"text/javascript" > <Script type = "text / javascript"> new Array ( 10 , 12 , 11 , 20 , 2 , 25 , 30 ) ; var dấu = new Array (10, 12, 11, 20, 2, 25, 30); ; nhãn hiệu). sắp xếp (; marks ) ; tài liệu. viết (nhãn hiệu); </ Script>
Kết quả: 10,11,12,2,20,25,30
Ở đây bạn thấy rằng số 2 là đến sau 12 và trước 20 trước khi các con số đang nhận được sắp xếp dựa trên các chữ số và chữ số đầu tiên tiếp theo.
Vì vậy, để sắp xếp một mảng trong JavaScript về số kỹ thuật sau đây có thể được sử dụng:
Phân loại bong bóng
Đây là một trong các kỹ thuật phân loại truyền thống được sử dụng trong các cấu trúc dữ liệu trong C, C + ngôn ngữ lập trình +. Trong kỹ thuật này các số được so sánh với nhau và tùy thuộc vào giá trị mà họ được trao đổi.
Ví dụ - Sắp xếp sử dụng Bubble Phân loại Kỹ thuật"text/javascript" > <Script type = "text / javascript"> new Array ( 10 , 12 , 11 , 20 , 2 ) ; var dấu = new Array (10, 12, 11, 20, 2); var i = 0 ; i < marks . length ; i ++ ) //Hold the first element cho (var i = 0; i dấu <;. chiều dài i + +) / / Giữ nguyên tố đầu tiên ( var j = i + 1 ; j < marks. length ; j ++ ) //Hold the next element from the first element cho (var j = i + 1; dấu <j;. chiều dài j + +) / / Giữ nguyên tố tiếp theo từ các yếu tố đầu tiên ( Number ( marks [ i ] ) > Number ( marks [ j ] ) ) //comparing first and next element if (Number (đánh dấu [i])> Số (đánh dấu [j])) / / so sánh và cạnh yếu tố đầu tiên ( j ] ; tempValue = nhãn hiệu [j]; = marks [ i ] ; đánh dấu [j] = nhãn hiệu [i]; = tempValue ; đánh dấu [i] = tempValue; ) ) ) marks ) ; tài liệu. viết (nhãn hiệu); script > </ Nhãn hiệu> </ script>Kết quả: 2,10,11,12,20
Ở đây bạn thấy rằng tôi đang tạo ra một biến tạm thời để giữ giá trị để các dữ liệu có thể được trao đổi.
Sử dụng chức năng thử nghiệm
Protoype Chức năng trong JavaScript có thể ghi đè lên các chức năng hiện có của các đối tượng. Vì vậy, bây giờ với kỹ thuật array.sort này có thể làm hoạt động sắp xếp số được cung cấp bạn đã cung cấp các chức năng cho phân loại dữ liệu số.
Ví dụ - Chức năng thử nghiệm"text/javascript" > Array. prototype . sort = function ( ) { for ( i = 0 ; i < this . length ; i ++ ) { for ( j = i + 1 ; j < this. length ; j ++ ) { if ( Number ( this [ i ] ) > Number ( this [ j ] ) ) { tempValue = this [ j ] ; this [ j ] = this [ i ] ; this [ i ] = tempValue ; } } } } var marks = new Array ( 10 , 12 , 11 , 20 , 2 ) ; marks. sort ( ) ; document. write ( marks ) ; </ this ></ script > <Script type = "text / javascript"> Array.. Nguyên mẫu loại = function () (for (i = 0; i <này. Chiều dài; i + +) (for (j = i + 1; j <này. Chiều dài ; j + +) (if (Số (điều này [i])> Số (điều này j])) (tempValue [= này [j]; này] [j = này [i]; này [i] = tempValue;) ))) nhãn hiệu var = new Array (10, ngày 12, 11 20, 2); điểm). sắp xếp (; tài liệu. viết (nhãn hiệu); </ này> </ script>Kết quả: 2,10,11,12,20
Ở đây i am trọng phương pháp sắp xếp mảng hiện tại bằng cách gọi phương pháp phân loại bong bóng bên trong nó. Vì vậy, bây giờ sắp xếp () phương pháp. Sẽ sắp xếp nó số và không theo thứ tự abc.
Thay đổi các tính năng của phương pháp Phân loại hiện tại
Trong kỹ thuật này, chúng tôi sẽ vượt qua một tham số đến một chức năng sắp xếp mảng đó là một chức năng mà sẽ có các hướng dẫn về việc làm thế nào để so sánh các phần tử mảng.
Ví dụ:"text/javascript" > <Script type = "text / javascript"> a , b ) //Sort array in ascending order chức năng ArraySortAscending (a, b) / / Phân loại mảng thứ tự tăng dần ( a - b ) ; trở lại (a - b); ) a , b ) //Sort array in descending order chức năng ArraySortDescending (a, b) / / Phân loại mảng thứ tự giảm dần ( b - a ) ; trở lại (b - a); ) new Array ( 10 , 12 , 11 , 20 , 2 ) ; var dấu = new Array (10, 12, 11, 20, 2); ArraySortAscending ) ; //This will sort the array in ascending order nhãn hiệu. sắp xếp (ArraySortAscending); / / Điều này sẽ sắp xếp các mảng thứ tự tăng dần marks + ' \n ' ) ; tài liệu. viết (+ n '\' điểm); new Array ( 10 , 12 , 11 , 20 , 2 ) ; var dấu = new Array (10, 12, 11, 20, 2); ArraySortDescending ) ; //This will sort the array in descending order nhãn hiệu. sắp xếp (ArraySortDescending); / / Điều này sẽ sắp xếp các mảng thứ tự giảm dần marks ) ; tài liệu. viết (nhãn hiệu); </ Script>Đầu ra:
2,10,11,12,20
20,12,11,10,2


































