Chắc hẳn trong sự nghiệp lập trình viên/kỹ sư phần mềm/nhà phát triển/người dùng bàn phím chuyên nghiệp, bạn đã từng gặp phải tình huống phải sắp xếp một số loại dữ liệu hoặc thành phần giao diện người dùng. Trong hầu hết các trường hợp, nó khá đơn giản, nhưng đôi khi nó có thể là một nỗi đau thực sự. Trong bài viết này, tôi sẽ cố gắng giải thích cách sắp xếp hoạt động trong thế giới TypeScript và JavaScript, cho bạn thấy một số ví dụ thực tế và nói ngắn gọn về một số thư viện phổ biến có thể giúp việc sắp xếp dễ dàng hơn nhiều
sắp xếp cơ bản
Hãy bắt đầu với ví dụ cơ bản nhất và sắp xếp mảng các chuỗi
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[];
// -> ['Bravo', 'Lima', 'Tango', 'Zulu']
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Đó là cách đơn giản nhất để sắp xếp theo thứ tự bảng chữ cái một chuỗi các chuỗi theo thứ tự tăng dần. Thay vào đó, nếu chúng ta muốn sắp xếp nó từ Z đến A thì sao?
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Điều này thoạt nghe có vẻ khó hiểu [đã từng ở đó] nhưng hãy tin tôi, nó thực sự rất có ý nghĩa khi bạn hiểu nó
Cách thức hoạt động của chức năng so sánh
Hàm so sánh nhận hai đối số - phần tử hiện tại và phần tử tiếp theo. Nó phải trả về một số sẽ xác định cách sắp xếp các phần tử. Nguyên tắc chung là
- nếu bạn trả về một số lớn hơn 0 - phần tử
7 sẽ về đầu [sẽ nhận được số chỉ mục thấp hơn phần tửconst words = ['Tango', 'Zulu', 'Bravo', 'Lima']; words.sort[[a, b] => { if [b > a] return 1; if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
8]const words = ['Tango', 'Zulu', 'Bravo', 'Lima']; words.sort[[a, b] => { if [b > a] return 1; if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
- nếu bạn trả về một số nhỏ hơn 0 - phần tử
8 sẽ về đầu [sẽ nhận được số chỉ mục thấp hơnconst words = ['Tango', 'Zulu', 'Bravo', 'Lima']; words.sort[[a, b] => { if [b > a] return 1; if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
7]const words = ['Tango', 'Zulu', 'Bravo', 'Lima']; words.sort[[a, b] => { if [b > a] return 1; if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
- nếu bạn trả về 0 - các phần tử sẽ giữ nguyên vị trí
Với cách sắp xếp số đơn giản, chúng ta thậm chí có thể tiến thêm một bước và đơn giản hóa phương pháp so sánh
// Ascending order
const arr = [1, -6, 8, 20, 3, 3];
arr.sort[[a, b] => a - b];
// -> [-6, 1, 3, 3, 8, 20]
// Descending order
const arr = [1, -6, 8, 20, 3, 3];
arr.sort[[a, b] => b - a];
// -> [20, 8, 3, 3, 1, -6]
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Hãy phân tích so sánh hai phần tử mảng đầu tiên
- trong ví dụ đầu tiên, chúng tôi thực hiện
1 đánh giá thành// Ascending order const arr = [1, -6, 8, 20, 3, 3]; arr.sort[[a, b] => a - b]; // -> [-6, 1, 3, 3, 8, 20] // Descending order const arr = [1, -6, 8, 20, 3, 3]; arr.sort[[a, b] => b - a]; // -> [20, 8, 3, 3, 1, -6]
2 - nghĩa là phần tử// Ascending order const arr = [1, -6, 8, 20, 3, 3]; arr.sort[[a, b] => a - b]; // -> [-6, 1, 3, 3, 8, 20] // Descending order const arr = [1, -6, 8, 20, 3, 3]; arr.sort[[a, b] => b - a]; // -> [20, 8, 3, 3, 1, -6]
7 phải ở trước phần tửconst words = ['Tango', 'Zulu', 'Bravo', 'Lima']; words.sort[[a, b] => { if [b > a] return 1; if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
8 [const words = ['Tango', 'Zulu', 'Bravo', 'Lima']; words.sort[[a, b] => { if [b > a] return 1; if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
5 phải ở trước// Ascending order const arr = [1, -6, 8, 20, 3, 3]; arr.sort[[a, b] => a - b]; // -> [-6, 1, 3, 3, 8, 20] // Descending order const arr = [1, -6, 8, 20, 3, 3]; arr.sort[[a, b] => b - a]; // -> [20, 8, 3, 3, 1, -6]
6]// Ascending order const arr = [1, -6, 8, 20, 3, 3]; arr.sort[[a, b] => a - b]; // -> [-6, 1, 3, 3, 8, 20] // Descending order const arr = [1, -6, 8, 20, 3, 3]; arr.sort[[a, b] => b - a]; // -> [20, 8, 3, 3, 1, -6]
- trong ví dụ thứ hai, chúng tôi thực hiện
7 ước tính thành// Ascending order const arr = [1, -6, 8, 20, 3, 3]; arr.sort[[a, b] => a - b]; // -> [-6, 1, 3, 3, 8, 20] // Descending order const arr = [1, -6, 8, 20, 3, 3]; arr.sort[[a, b] => b - a]; // -> [20, 8, 3, 3, 1, -6]
8 - nghĩa là phần tử// Ascending order const arr = [1, -6, 8, 20, 3, 3]; arr.sort[[a, b] => a - b]; // -> [-6, 1, 3, 3, 8, 20] // Descending order const arr = [1, -6, 8, 20, 3, 3]; arr.sort[[a, b] => b - a]; // -> [20, 8, 3, 3, 1, -6]
8 phải ở trước phần tửconst words = ['Tango', 'Zulu', 'Bravo', 'Lima']; words.sort[[a, b] => { if [b > a] return 1; if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
7 [const words = ['Tango', 'Zulu', 'Bravo', 'Lima']; words.sort[[a, b] => { if [b > a] return 1; if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
6 phải ở trước// Ascending order const arr = [1, -6, 8, 20, 3, 3]; arr.sort[[a, b] => a - b]; // -> [-6, 1, 3, 3, 8, 20] // Descending order const arr = [1, -6, 8, 20, 3, 3]; arr.sort[[a, b] => b - a]; // -> [20, 8, 3, 3, 1, -6]
5]// Ascending order const arr = [1, -6, 8, 20, 3, 3]; arr.sort[[a, b] => a - b]; // -> [-6, 1, 3, 3, 8, 20] // Descending order const arr = [1, -6, 8, 20, 3, 3]; arr.sort[[a, b] => b - a]; // -> [20, 8, 3, 3, 1, -6]
Sau đó, phương pháp
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
93 tiếp tục cho các số khác. Thật là chính xác? . Hóa ra các trình duyệt khác nhau đang sử dụng các thuật toán khác nhau để làm điều đó. API và đầu ra giống nhau, nhưng về cơ bản, chúng đang sắp xếp mọi thứ theo một cách hơi khác. Nếu bạn muốn có bằng chứng, hãy thử mã bên dưới trong bảng điều khiển Firefox và Chrome và xem nội dung được trả về - mã không giống nhauconst words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
9Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Nếu bạn muốn tìm hiểu sâu hơn nữa - hãy xem giải thích tuyệt vời này về các thuật toán sắp xếp khác nhau
TIỀN BOA
Đáng để ghi nhớ.
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
93 là một phương thức có thể thay đổi, có nghĩa là nó thay đổi mảng ban đầu. Nếu bạn muốn tạo một mảng mới, bạn có thể trải nó ra rồi sắp xếp như thế nàyconst words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
2Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Sắp xếp theo phương pháp const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
95
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
Trong các ví dụ trước, chúng ta chỉ cần so sánh các chuỗi và trả về giá trị đúng để sắp xếp các chuỗi trong mảng. Nhưng có một cách tuyệt vời khác để làm điều đó, ngoài ra nó còn cho chúng ta thêm siêu năng lực. Tôi đang nói về phương pháp
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
95. Đó là những gì bạn yêu cầu? . Điều này đặc biệt hữu ích với các ngôn ngữ có ký tự đặc biệt, vì chúng có thể có vị trí khác trong bảng chữ cái. Hãy xem một số ví dụ để mọi thứ có ý nghĩa hơnconst words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
5Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Giống như tôi đã đề cập trước khi
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
95 trả về một giá trị số, vì vậy nếu const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
8 đứng trước const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
7 trong bảng chữ cái, nó sẽ mang lại một giá trị âm. Nếu const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
7 trước const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
8 - nó mang lại giá trị dương. Nếu chúng giống nhau - nó mang lại const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
22. Và chúng ta đã biết điều đó có ý nghĩa gì đối với phương pháp const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
93 từ phần const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
24Nhưng các siêu năng lực ở đâu, bạn hỏi?
địa phương
Nếu bạn đang xử lý nhiều ngôn ngữ trong ứng dụng/trang web của mình, thì điều quan trọng là phải chuyển ngôn ngữ của ngôn ngữ hiện tại khi bạn sử dụng tính năng sắp xếp, vì một số ký tự có vị trí khác trong bảng chữ cái
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
4Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Tùy chọn
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
95 cũng có một đối số thứ ba, đó là tùy chọn. Có một vài trong số chúng, nhưng tôi sẽ chỉ cho bạn hai, theo ý kiến của tôi, cần thiết nhất hàng ngày. Nếu bạn muốn đọc thêm về tất cả chúng, tôi thực sự khuyên dùng MDN và Tech trên mạngvỏ bọc
Bạn có thể chuyển một thuộc tính
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
26 cho các tùy chọn. Nếu bạn thiết lập nó là const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
27, nó sẽ sắp xếp các từ viết hoa trước [khi chúng bắt đầu bằng cùng một chữ cái]. Nếu bạn vượt qua const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
28 - nó sẽ sắp xếp chữ thường trướcconst words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
9Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Giá trị số
Giả sử chúng ta muốn sắp xếp các chuỗi số - nếu chúng ta không chuyển thuộc tính
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
29, chúng sẽ được coi là các chuỗi và được sắp xếp giống như chúng - const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
50 sẽ đi trước const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
51 vì 1 nhỏ hơn 2. Kiểm tra các ví dụ dưới đây để hiểu rõ hơnconst words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
3Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Ví dụ thực tế
Chúng ta đã đề cập đến lý thuyết [mà tôi hy vọng sẽ giúp bạn hiểu rõ hơn về cách hoạt động của tính năng sắp xếp], bây giờ hãy tập trung vào các ví dụ thực tế. Tôi muốn cho bạn thấy một số sẽ chỉ sử dụng phương thức gốc
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
93 và một số khác sẽ sử dụng các thư viện bên ngoài như const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
53. Đi nàoSắp xếp một mảng các đối tượng
Giả sử chúng ta có một mảng các đối tượng [mỗi đối tượng sẽ đại diện cho một con chó] và chúng ta muốn sắp xếp các đối tượng này theo thứ tự bảng chữ cái theo thuộc tính
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
54. Hãy xem làm thế nào chúng ta có thể làm điều đóconst words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
7Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Như bạn có thể thấy, điều này rất giống với sắp xếp chuỗi thông thường, điểm khác biệt duy nhất là chúng ta đang so sánh các thuộc tính cụ thể của các đối tượng
TIỀN BOA
Tất cả phụ thuộc vào sở thích của bạn [và có thể là tiêu chuẩn nhóm của bạn] nhưng bạn có thể làm cho chức năng sắp xếp ngắn hơn nữa
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
0Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Sắp xếp dựa trên các giá trị khác nhau
Vì vậy, chúng tôi đã đề cập đến điều đó, nhưng nếu chúng tôi có hai con chó bulgie trong danh sách của mình thì sao?
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
1Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Như bạn có thể thấy, chúng tôi chỉ cần thêm một "nhánh" khác vào đây - nếu các giá trị được so sánh giống nhau, chúng tôi sẽ thêm một đường dẫn
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
57 khác để xử lý việc so sánh một thuộc tính khác trên đối tượng - trong trường hợp này là const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
56TIỀN BOA
Đôi khi các chức năng sắp xếp của bạn có thể trở nên khá phức tạp, vì vậy sẽ rất hợp lý khi trích xuất chúng theo các phương thức của riêng chúng và chuyển chúng tới
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
93const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
2Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Sắp xếp dựa trên mảng khác
Quay trở lại với những chú chó yêu quý của chúng ta, hãy tưởng tượng chúng ta muốn sắp xếp chúng theo
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
54 nhưng không theo thứ tự bảng chữ cái. Giả sử chúng ta có một danh sách cụ thể các giống cần được sử dụng làm tham chiếu cho logic sắp xếp. Hãy xem bên dưới vì nó có thể dễ hiểu hơn với ví dụ mãconst words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
3Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Điều gì đã xảy ra ở đây? . Trong tình huống này, nếu chúng ta so sánh chỉ số của
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
42 và const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
43, chúng ta sẽ nhận được const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
44, điều đó có nghĩa là const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
45 sẽ đi đầu tiên trong phương pháp sắp xếp của chúng tathư viện bên ngoài
Ngoài các giải pháp vanilla JS/TS của bạn, còn có rất nhiều thư viện bên ngoài hiển thị API đẹp để giúp sắp xếp dễ dàng hơn. Dưới đây tôi sẽ cho bạn thấy các ví dụ từ hai trong số đó -
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
53 và const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
47lodash
Lodash là một thư viện tiện ích JavaScript rất phổ biến. Nó có tất cả các loại phương pháp khác nhau giúp ích rất nhiều cho bạn trong các công việc hàng ngày của nhà phát triển. Nó cũng cho phép bạn sử dụng một số chức năng trợ giúp sắp xếp
sắp xếpBy
Phương thức này cho phép bạn sắp xếp các mảng đối tượng. Đầu ra hoàn toàn giống như trong phần
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
48 trước đây. Với đối số đầu tiên, bạn chuyển mảng để sắp xếp và đối số thứ hai là một mảng các thuộc tính đối tượng mà chúng ta muốn sắp xếp theo [trong ví dụ bên dưới - sắp xếp đầu tiên theo giống, sau đó theo tên nếu giống giống nhau]const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
4Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
đặt bởi
Phương thức này hầu như giống hệt với
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
49 ngoại trừ việc nó cho phép chỉ định thứ tự sắp xếp của các lần lặp. Vì vậy, nếu chúng ta muốn sắp xếp theo giống tăng dần, nhưng sau đó theo tên giảm dần, chúng ta có thể làm như thế nàyconst words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
5Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
sắp xếp nhanh
Đây là thư viện sắp xếp linh hoạt và dễ sử dụng với sự hỗ trợ của TypeScript. Nó có cách tiếp cận hơi khác so với lodash khi nói đến API. Hãy xem cách chúng ta có thể giải quyết vấn đề sắp xếp giống như chúng ta đã làm trước đây
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
6Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Tất nhiên, cả hai thư viện được đề cập đều có nhiều tùy chọn và khả năng hơn. Ngoài ra, có rất nhiều thư viện khác giải quyết các vấn đề tương tự hoặc tương tự, chỉ kể tên một số -
const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
90, const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
91 hoặc const words = ['Tango', 'Zulu', 'Bravo', 'Lima'];
words.sort[[a, b] => {
if [b > a] return 1;
if [b ['Zulu', 'Tango', 'Lima', 'Bravo']
92. Tôi khuyến khích bạn kiểm tra tài liệu của họ và thử chơi - hãy tin tôi, đôi khi họ có thể là người tiết kiệm trực tiếpTóm lược
Tôi hy vọng bài viết này sẽ giúp bạn tự tin hơn khi sắp xếp trong Javascript và Typescript. Chúng tôi đã đi từ những điều cơ bản, qua các ví dụ phức tạp hơn và hoàn thành trên các thư viện bên ngoài có thể giúp chúng tôi thực hiện một số công việc. Tôi nghĩ bây giờ bạn đã sẵn sàng để. khắc phục vấn đề. [ý định chơi chữ ở cấp độ trò đùa của bố]