Sử dụng Array.sort() trong Javascript

Bài viết này hướng dẫn bạn cách sử dụng phương thức Array.sort() như thế nào trong Javascript. Javascript cung cấp một phương thức cho phép sắp xếp các phần tử trong mảng:

Cú pháp:
Array.sort()
Array.sort(sortFunction)
var arrayString = ['Ho chi minh', 'Da nang', 'Ha noi'];
var arrayNumber = [10, 5, 3, 12, 1, 11];
alert(arrayString.sort());
alert(arrayNumber.sort());
// xây dựng một object Person
function Person(id, name){
this.id = id;
this.name = name;
// override phương thức toString
this.toString = function(){
return this.name;
};
}
// khởi tạo mảng
var arrayPerson = [];
arrayPerson.push(new Person(1, "Jackie"));
arrayPerson.push(new Person(2, "Anna"));
arrayPerson.push(new Person(3, "Avi"));
// sort
alert(arrayPerson.sort());
function sortStringDesc(s1, s2){
return (s1>s2 ? -1 : (s1 < s2 ? 1 : 0));
}
var arrayString = ['Ho chi minh', 'Da nang', 'Ha noi'];
alert(arrayString.sort(sortStringDesc));
function sortNumberAsc(a, b){
return a - b;
}
var arrayNumber = [10, 5, 3, 12, 1, 11];
alert(arrayNumber.sort(sortNumberAsc));
// xây dựng hàm sắp sếp
function sortPerson(p1, p2){
return p1.id - p2.id;
}
// xây dựng một object Person
function Person(id, name){
this.id = id;
this.name = name;
// override phương thức toString
this.toString = function(){
return this.name;
};
}
// khởi tạo mảng
var arrayPerson = [];
arrayPerson.push(new Person(1, "Jackie"));
arrayPerson.push(new Person(2, "Anna"));
arrayPerson.push(new Person(3, "Avi"));
// sort
alert(arrayPerson.sort(sortPerson));
Sử dụng Array.sort()

Theo mặc định, Javascript sắp xếp các phần tử trong mảng tăng dần dựa trên phương thức toString() trên từng phần tử.

Ví dụ 1.1:

Kết quả như sau:

Da nang,Ha noi,Ho chi minh
1,10,11,12,3,5
Ví dụ 1.2: sắp xếp một mảng các Object:

Khi sắp xếp, Javascript sẽ gọi tới phương thức toString() của từng phần tử, và thực hiện sắp xếp, kết quả là:

Anna,Avi,Jackie

Ví dụ 1.2 cho thấy phương thức toString() đã được gọi khi javascript thực hiện sắp xếp.

Sử dụng phương thức Array.sort(sortFunction)

Với cú pháp thứ 2 của phương thức sort(), chúng ta có thể tùy biến các kiểu sắp xếp khác nhau như tăng dần, giảm dần, sắp xếp số, chuỗi, sắp xếp theo thuộc tính của Object…

Theo mặc định, Javascript sẽ sắp xếp tăng dần từ trên xuống, vì vậy, để tùy biến điều này, chúng ta cần cung cấp cho phương thức sort() tham số sortFunction. Tham số này là một function, trả về một trong 3 giá trị sau: 1 (lớn hơn), 0 (bằng), -1 (nhỏ hơn).

Ví dụ 2.1: Sắp xếp một mảng chuỗi giảm dần.
Kết quả như sau: Ho chi minh,Ha noi,Da nang Ví dụ 2.2: Sắp xếp một mảng số tăng dần.
Kết quả như sau: 1,3,5,10,11,12 Ví dụ 2.3: sắp xếp mảng Person tăng dần theo id.
Kết quả là:

Jackie,Anna,Avi

Hy vọng bài viết hữu ích cho các bạn.

Chúc các bạn thành công!

Không có nhận xét nào :

Đăng nhận xét