Trong JavaScript, chúng ta có thể sắp xếp các phần tử của một mảng một cách dễ dàng bằng một phương thức có sẵn gọi là hàm sort[]
Tuy nhiên, các kiểu dữ liệu [chuỗi, số, v.v.] có thể khác nhau từ mảng này sang mảng khác. Điều này có nghĩa là chỉ sử dụng phương thức sort[] không phải lúc nào cũng là một giải pháp thích hợp
Trong bài đăng này, bạn sẽ tìm hiểu cách sắp xếp một mảng trong JavaScript bằng cách sử dụng phương thức sort[] cho chuỗi và số
Mảng chuỗi
Hãy bắt đầu với chuỗi
const teams = ['Real Madrid', 'Manchester Utd', 'Bayern Munich', 'Juventus'];
Khi chúng ta sử dụng phương thức sort[] thì mặc định các phần tử sẽ được sắp xếp theo thứ tự tăng dần [A đến Z]
teams.sort[];
// ['Bayern Munich', 'Juventus', 'Manchester Utd', 'Real Madrid']
Nếu bạn muốn sắp xếp mảng theo thứ tự giảm dần, bạn cần sử dụng phương thức đảo ngược [ ] để thay thế
teams.reverse[];
// ['Real Madrid', 'Manchester Utd', 'Juventus', 'Bayern Munich']
Mảng số
Thật không may, sắp xếp các số không đơn giản. Nếu áp dụng trực tiếp phương pháp sắp xếp cho mảng số, chúng ta sẽ thấy một kết quả không mong muốn
const numbers = [3, 23, 12];
numbers.sort[]; // --> 12, 23, 3
Tại sao phương thức sort[] không hoạt động đối với các số
Trên thực tế, nó đang hoạt động, nhưng sự cố này xảy ra do JavaScript sắp xếp các số theo thứ tự bảng chữ cái. Hãy để tôi giải thích điều này một cách chi tiết
Hãy nghĩ về A=1, B=2, và C=3
const myArray = ['C', 'BC', 'AB'];
myArray.sort[]; // [AB, BC, C]
Ví dụ: nếu chúng ta có ba chuỗi là C [3], BC [23] và AB [12], JavaScript sẽ sắp xếp chúng là AB, BC và C theo thứ tự tăng dần, đúng theo thứ tự bảng chữ cái
Tuy nhiên, JavaScript sẽ sắp xếp các số [một lần nữa theo bảng chữ cái] là 12, 23 và 3, điều này không chính xác
Dung dịch. Chức năng so sánh
May mắn thay, chúng ta có thể hỗ trợ phương thức sort[] với một hàm so sánh cơ bản sẽ thực hiện thủ thuật này
function[a, b] {return a - b}
May mắn thay, phương pháp sắp xếp có thể sắp xếp các giá trị âm, 0 và dương theo đúng thứ tự. Khi phương thức sort[] so sánh hai giá trị, nó sẽ gửi các giá trị đó đến hàm so sánh của chúng ta và sắp xếp các giá trị theo giá trị được trả về
- Nếu kết quả là âm, a được sắp xếp trước b
- Nếu kết quả là dương, b được sắp xếp trước a
- Nếu kết quả là 0, không có gì thay đổi
Tất cả những gì chúng ta cần là sử dụng hàm so sánh bên trong phương thức sort[]
const numbers = [3, 23, 12];
numbers.sort[function[a, b]{return a - b}]; // --> 3, 12, 23
Nếu chúng ta muốn sắp xếp các số theo thứ tự giảm dần, lần này chúng ta cần trừ tham số thứ hai [b] khỏi tham số đầu tiên [a]
const numbers = [3, 23, 12];
numbers.sort[function[a, b]{return b - a}]; // --> 23, 12, 3
Gói [lại
Như chúng ta có thể thấy, việc sắp xếp các phần tử của một mảng có thể được thực hiện dễ dàng trong JavaScript với phương thức sort[] nếu chúng ta biết cách sử dụng nó đúng cách. Tôi hy vọng bài viết của tôi giúp bạn hiểu cách sử dụng phương thức sort[] trong JavaScript đúng cách
Nếu bạn muốn tìm hiểu thêm về Phát triển web, vui lòng truy cập kênh Youtube của tôi
Cảm ơn bạn đã đọc
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
Nhà phát triển giao diện người dùng // Theo dõi tôi trên Youtube. https. //chút. ly/3dBiTUT
Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn
Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu
Trong Javascript, Mảng. sort[] là một phương thức tích hợp sẵn của Array Object. Sử dụng mảng. sort[], chúng ta có thể sắp xếp mảng theo thứ tự giảm dần hoặc tăng dần. Thứ tự sắp xếp mặc định là thứ tự tăng dần cho phương pháp sắp xếp
Các trình duyệt khác nhau sử dụng các thuật toán sắp xếp khác nhau cho Array. loại[]. Mozilla sử dụng sắp xếp hợp nhất trong khi công cụ javascript V8 của chrome sử dụng sắp xếp nhanh và sắp xếp chèn
cú pháp
________số 8so sánh Hàm là một đối số tùy chọn của phương thức sắp xếp. Nó xác định thứ tự sắp xếp. Nếu bỏ qua, các giá trị của mảng sẽ được chuyển đổi thành chuỗi và được so sánh dựa trên giá trị điểm mã Unicode của chúng
let arr = [9, 70, 44];
arr.sort[];
// As no compare method is provided,
// the array elements will be converted to strings["9", "70", "44"] and // their unicode code point value will be compared.
console.log[arr];
// 44, 70, 9
So sánh chức năng
Hàm So sánh lấy hai giá trị trong mảng làm tham số để so sánh và quyết định thứ tự sắp xếp. Bạn có thể xác định điều kiện để so sánh các giá trị, điều này sẽ quyết định thứ tự sắp xếp
teams.sort[];
// ['Bayern Munich', 'Juventus', 'Manchester Utd', 'Real Madrid']
0Hàm so sánh quyết định thứ tự của các giá trị dựa trên các điều kiện sau
- Nếu nó trả về số âm, chỉ số của "a" sẽ thấp hơn "b"
- Nếu trả về số dương thì chỉ số của "a" sẽ cao hơn "b"
- Nếu nó trả về 0, nó sẽ để phần tử ở vị trí của nó
Ghi chú. Mảng được sắp xếp tại chỗ và phương thức sắp xếp cũng trả về mảng đã sắp xếp
Ví dụ
teams.sort[];
// ['Bayern Munich', 'Juventus', 'Manchester Utd', 'Real Madrid']
1Hãy làm việc với một vài ví dụ để hiểu Array. sắp xếp [] tốt hơn
Sắp xếp các số không có chức năng so sánh
teams.sort[];
// ['Bayern Munich', 'Juventus', 'Manchester Utd', 'Real Madrid']
2Sắp xếp các số với chức năng so sánh
teams.sort[];
// ['Bayern Munich', 'Juventus', 'Manchester Utd', 'Real Madrid']
3Sắp xếp chuỗi
teams.sort[];
// ['Bayern Munich', 'Juventus', 'Manchester Utd', 'Real Madrid']
4Sắp xếp một mảng số và chuỗi
teams.sort[];
// ['Bayern Munich', 'Juventus', 'Manchester Utd', 'Real Madrid']
5Sắp xếp một mảng không được xác định là một phần tử
teams.sort[];
// ['Bayern Munich', 'Juventus', 'Manchester Utd', 'Real Madrid']
6Tôi hy vọng bài viết này đã giúp bạn tìm hiểu một khái niệm mới, vui lòng ủng hộ và giới thiệu nó cho bạn bè và gia đình của bạn. Hãy hỏi bất kỳ câu hỏi trong các ý kiến dưới đây
Chúng tôi thường xuyên xuất bản các bài viết về phát triển web và công nghệ. Cân nhắc đăng ký nhận bản tin của chúng tôi hoặc theo dõi chúng tôi trên các kênh xã hội của chúng tôi [twitter, Facebook, LinkedIn]