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
mảng.sort([hàm]);
Ví dụ
Hãy sắp xếp một mảng:
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Kết quả thực thi mã:
['a', 'b', 'c', 'd']
Ví dụ
Hãy sắp xếp một mảng chứa số:
let arr = [4, 1, 7, 2];
console.log(arr.sort());
Kết quả thực thi mã:
[1, 2, 4, 7]
Ví dụ
Hãy thêm số vào mảng và sắp xếp nó:
let 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ả:
[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:
let 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ã:
[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:
let 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ã:
[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:
let 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ã:
[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:
let 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ã:
[
{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':
let 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ã:
[
{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:
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Kết quả thực thi mã:
['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