Phương thức sort
Phương thức sort thực hiện sắp xếp mảng
theo thứ tự từ điển và trả về mảng đã được
thay đổi. Tham số tùy chọn
có thể chỉ định một hàm tùy chỉnh để sắp xếp.
Cú pháp
javascriptmảng.sort([hàm]);
Ví dụ
Hãy sắp xếp một mảng:
javascriptlet arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Kết quả thực thi mã:
javascript['a', 'b', 'c', 'd']
Ví dụ
Hãy sắp xếp một mảng chứa số:
javascriptlet arr = [4, 1, 7, 2];
console.log(arr.sort());
Kết quả thực thi mã:
javascript[1, 2, 4, 7]
Ví dụ
Hãy thêm số vào mảng và sắp xếp nó:
javascriptlet arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());
Kết quả thực thi mã chúng ta sẽ thấy các số không được sắp xếp theo thứ tự tăng dần, mà theo thứ tự từ điển, tức là các số được so sánh với nhau như chuỗi. Khi đó, việc so sánh diễn ra theo từng ký tự, xem mã của ký tự đầu tiên có lớn hơn mã của ký tự bên cạnh hay không, v.v. Kết quả:
javascript[1, 111, 123, 2, 4, 7]
Ví dụ
Bây giờ hãy sắp xếp mảng
bằng cách sử dụng một hàm, trong đó chúng ta định nghĩa điều kiện -
nếu tham số thứ nhất lớn hơn tham số thứ hai, thì đổi chỗ nó
(để làm điều này, trong return là bất kỳ số dương nào).
Trong trường hợp ngược lại, việc đổi chỗ là không cần thiết và chúng ta chỉ định
0 hoặc bất kỳ số âm nào:
javascriptlet arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});
console.log(arr);
Kết quả thực thi mã:
javascript[1, 2, 4, 7, 111, 123]
Ví dụ
Hãy rút gọn mã trong hàm của chúng ta từ ví dụ trước:
javascriptlet arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Kết quả thực thi mã:
javascript[1, 2, 4, 7, 111, 123]
Ví dụ
Và bây giờ hãy sắp xếp mảng theo thứ tự giảm dần bằng cách sử dụng hàm:
javascriptlet arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Kết quả thực thi mã:
javascript[123, 111, 7, 4, 2, 1]
Ví dụ
Hãy sắp xếp một mảng các đối tượng
theo khóa 'one' theo thứ tự tăng dần:
javascriptlet arr = [
{one: 1, two: 2},
{one: 7, two: 1},
{one: 3, two: 3}
];
arr.sort(function(a, b) {
return a.one - b.one;
});
console.log(arr);
Kết quả thực thi mã:
javascript[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
Ví dụ
Và bây giờ hãy sắp xếp mảng các đối tượng
theo khóa 'two':
javascriptlet arr = [
{one: 1, two: 2},
{one: 7, two: 1},
{one: 3, two: 3}
];
arr.sort(function(a, b) {
return a.two - b.two;
});
console.log(arr);
Kết quả thực thi mã:
javascript[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
Ví dụ
Hãy kiểm tra xem mảng có thay đổi sau khi
áp dụng phương thức sort không:
javascriptlet arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Kết quả thực thi mã:
javascript['a', 'b', 'c', 'd']
Xem thêm
-
phương thức
filter,
cho phép lọc các phần tử của mảng