Sắp xếp mảng sử dụng vòng lặp javascript

Trong hướng dẫn này, chúng ta sẽ học cách sắp xếp một mảng trong JavaScript. Chúng ta sẽ học cách sắp xếp mảng tăng dần, giảm dần hay sắp xếp chẵn các đối tượng

    Mục lục

sắp xếp trong JavaScript

Phương thức sort[] được sử dụng để sắp xếp một mảng theo thứ tự tăng dần bằng cách thay đổi vị trí của các phần tử trong chính mảng đó. Phương thức sắp xếp mảng và cũng trả về mảng đã sắp xếp.

let num = [5, 2, 12, 56, 263, 1];

// using sort method
num.sort[];
console.log[num];
0 là một phương thức tích hợp sẵn của JavaScript. Nó chuyển đổi phần tử mảng thành một chuỗi và sau đó so sánh các giá trị điểm mã UTF-16 của chúng

Hãy xem ví dụ về phương thức sắp xếp .

Ví dụ

// Array of strings
let lang = ["HTML", "CSS", "Javascript", "SQL", "Python", "Dart", "Basic"];

// Using sort method
lang.sort[];
console.log[lang];
▶ Thử Chạy Tại Đây

Hoạt động của phương pháp sắp xếp Method

Phương thức

let num = [5, 2, 12, 56, 263, 1];

// using sort method
num.sort[];
console.log[num];
0 chuyển đổi phần tử mảng thành một chuỗi và sau đó so sánh các giá trị điểm mã UTF-16 của chúng và sắp xếp chúng theo thứ tự tăng dần.

Lưu ý . Giá trị điểm mã UTF-16 giống như giá trị điểm mã ASCII, nhưng tiêu chuẩn Unicode xác định giá trị điểm mã của các ký tự trong phạm vi U+0000 đến U+FFFF

Giả sử chúng ta có 2 số 51 trong . Theo các giá trị điểm mã UTF-16 , 5 lớn hơn . Vì vậy, phương pháp

let num = [5, 2, 12, 56, 263, 1];

// using sort method
num.sort[];
console.log[num];
0 sẽ di chuyển 5 sau 1. 1. So, the
let num = [5, 2, 12, 56, 263, 1];

// using sort method
num.sort[];
console.log[num];
0 method will move 5 after 1.

Ví dụ

let num = [5, 1];

// Using sort method
num.sort[];
console.log[num]; // [1, 5]

// similarly taking more than 2 numbers
let num2 = [5, 1, 3, 2, 4];

num2 = num2.sort[];
console.log[num2]; // [1, 2, 3, 4, 5]
Chạy ở đây

Đây là phần khó khăn. Điều gì xảy ra nếu chúng ta cũng có các số có 2 chữ số trở lên trong mảng, chẳng hạn như 12, 56, 263, v.v.?

Lấy một mảng thử nghiệm.

let num = [5, 2, 12, 56, 263, 1];

// using sort method
num.sort[];
console.log[num];
3 và áp dụng
let num = [5, 2, 12, 56, 263, 1];

// using sort method
num.sort[];
console.log[num];
4

Bạn sẽ nghĩ rằng nó sẽ được sắp xếp như thế nào.
______05 ❌
nhưng nó sẽ được sắp xếp như.
______06 ✅

Nghĩ sao. 🤔

Điều này xảy ra vì phương pháp sort[] trước tiên so sánh chữ số đầu tiên của phần tử mảng và sắp xếp theo đó. Nếu chữ số đầu tiên giống nhau, thì nó sẽ so sánh chữ số thứ hai và sắp xếp theo đó. Và như thế.

Vì lý do này, 12 được sắp xếp trước 2 vì khi bạn so sánh chữ số đầu tiên của cả hai số thì 1 đứng trước 2. Vì vậy, 12 được sắp xếp trước 2

Áp dụng logic tương tự, bạn có thể hiểu tại sao 263 lại đứng trước 5 và 56

Ví dụ

let num = [5, 2, 12, 56, 263, 1];

// using sort method
num.sort[];
console.log[num];
▶ Hãy thử chạy tại đây

Sau đó, bạn nên làm gì để sắp xếp các phần tử mảng theo thứ tự tăng dần của giá trị số của chúng?

Để khắc phục điều này, bạn cần chuyển một hàm so sánh trong phương thức sắp xếp.

So sánh chức năng

Phương thức

let num = [5, 2, 12, 56, 263, 1];

// using sort method
num.sort[];
console.log[num];
0 chấp nhận một hàm làm đối số. Nó được gọi là chức năng so sánh

// Array of strings
let lang = ["HTML", "CSS", "Javascript", "SQL", "Python", "Dart", "Basic"];

// Using sort method
lang.sort[];
console.log[lang];
1

Hàm so sánh xác định thứ tự sắp xếp các phần tử. Nó nhận hai đối số và trả về một số. Số trả về được sử dụng để sắp xếp mảng.

// Array of strings
let lang = ["HTML", "CSS", "Javascript", "SQL", "Python", "Dart", "Basic"];

// Using sort method
lang.sort[];
console.log[lang];
2

2 đối số được hàm so sánh chấp nhận thường có tên là 'a' và 'b'

Tại bất kỳ thời điểm sắp xếp mảng nào, hàm so sánh được gọi với hai phần tử của mảng trong đó 'a' là phần tử hiện tại và 'b' là phần tử tiếp theo trong mảng

2 yếu tố này được so sánh và các hành động sau đây được thực hiện

  1. Nếu compareFunction[a, b] trả về giá trị nhỏ hơn 0, thì phương thức
    let num = [5, 2, 12, 56, 263, 1];
    
    // using sort method
    num.sort[];
    console.log[num];
    0 sẽ sắp xếp a< . Đơn giản là at lower index than b. Simply a sẽ đến trước b .
  2. Nếu compareFunction[a, b] trả về bằng 0, thì phương thức
    let num = [5, 2, 12, 56, 263, 1];
    
    // using sort method
    num.sort[];
    console.log[num];
    0 sẽ giữ nguyên vị trí phần tử.
  3. Nếu compareFunction[a, b] trả về giá trị lớn hơn 0, thì phương thức
    let num = [5, 2, 12, 56, 263, 1];
    
    // using sort method
    num.sort[];
    console.log[num];
    0 sẽ sắp xếp a< . Chỉ cần at greater index than b. Simply a sẽ đến sau b .

Hãy xem một ví dụ

Ví dụ

// Array of strings
let lang = ["HTML", "CSS", "Javascript", "SQL", "Python", "Dart", "Basic"];

// Using sort method
lang.sort[];
console.log[lang];
6▶ Thử Chạy Tại Đây

Sắp Xếp Mảng Số

Bây giờ chúng ta đã biết cách sử dụng hàm so sánh, hãy xem cách sắp xếp một mảng số

Sử dụng phương thức

let num = [5, 2, 12, 56, 263, 1];

// using sort method
num.sort[];
console.log[num];
0 và truyền hàm so sánh cho nó

Không cần thiết phải sử dụng một chức năng bên ngoài. Bạn cũng có thể sử dụng chức năng ẩn danh

Hãy sắp xếp một dãy số bằng phương thức

let num = [5, 2, 12, 56, 263, 1];

// using sort method
num.sort[];
console.log[num];
0

Ví dụ

// Array of strings
let lang = ["HTML", "CSS", "Javascript", "SQL", "Python", "Dart", "Basic"];

// Using sort method
lang.sort[];
console.log[lang];
9▶ Thử Chạy Tại Đây

# Rút gọn hàm so sánh

Nếu các phần tử mảng là số và không phải là

// Array of strings
let lang = ["HTML", "CSS", "Javascript", "SQL", "Python", "Dart", "Basic"];

// Using sort method
lang.sort[];
console.log[lang];
13 thì thay vì trả về cơ số 3 điều kiện như trong ví dụ trên, chỉ cần trả về
// Array of strings
let lang = ["HTML", "CSS", "Javascript", "SQL", "Python", "Dart", "Basic"];

// Using sort method
lang.sort[];
console.log[lang];
14 sẽ tương đương với 3 điều kiện trên

Ví dụ

let num = [5, 2, 12, 56, 263, 1];

// using sort method
num.sort[];
console.log[num];
2▶ Chạy thử tại đây

Ví dụ giải thích

Hãy kiểm tra 3 phần tử đầu tiên của mảng. tôi. e

// Array of strings
let lang = ["HTML", "CSS", "Javascript", "SQL", "Python", "Dart", "Basic"];

// Using sort method
lang.sort[];
console.log[lang];
15

let num = [5, 2, 12, 56, 263, 1];

// using sort method
num.sort[];
console.log[num];
4

# So sánh hàm dưới dạng biểu thức hàm

Bạn cũng có thể định nghĩa trong phương thức

// Array of strings
let lang = ["HTML", "CSS", "Javascript", "SQL", "Python", "Dart", "Basic"];

// Using sort method
lang.sort[];
console.log[lang];
16

Ví dụ

let num = [5, 2, 12, 56, 263, 1];

// using sort method
num.sort[];
console.log[num];
6▶ Chạy thử tại đây

# So sánh chức năng như chức năng mũi tên

Hoặc bạn có thể xác định chức năng so sánh bằng chức năng mũi tên

Ví dụ

let num = [5, 1];

// Using sort method
num.sort[];
console.log[num]; // [1, 5]

// similarly taking more than 2 numbers
let num2 = [5, 1, 3, 2, 4];

num2 = num2.sort[];
console.log[num2]; // [1, 2, 3, 4, 5]
0▶ Hãy thử chạy tại đây

Hoặc đơn giản hơn bạn có thể viết. [hàm mũi tên như biểu thức hàm]

Ví dụ

let num = [5, 1];

// Using sort method
num.sort[];
console.log[num]; // [1, 5]

// similarly taking more than 2 numbers
let num2 = [5, 1, 3, 2, 4];

num2 = num2.sort[];
console.log[num2]; // [1, 2, 3, 4, 5]
1Chạy ở đây

báo cáo quảng cáo này

Sắp xếp mảng theo thứ tự giảm dần

Bạn nghĩ thế nào về việc sắp xếp một mảng theo thứ tự giảm dần?

Một cách để làm điều này là sắp xếp mảng theo thứ tự tăng dần rồi đảo ngược mảng bằng phương thức

// Array of strings
let lang = ["HTML", "CSS", "Javascript", "SQL", "Python", "Dart", "Basic"];

// Using sort method
lang.sort[];
console.log[lang];
17

Ví dụ

let num = [5, 1];

// Using sort method
num.sort[];
console.log[num]; // [1, 5]

// similarly taking more than 2 numbers
let num2 = [5, 1, 3, 2, 4];

num2 = num2.sort[];
console.log[num2]; // [1, 2, 3, 4, 5]
2▶ Thử Chạy Tại Đây

Nhưng chúng ta có thể làm điều này với một sửa đổi đơn giản trong hàm so sánh

Chỉ cần thay đổi

// Array of strings
let lang = ["HTML", "CSS", "Javascript", "SQL", "Python", "Dart", "Basic"];

// Using sort method
lang.sort[];
console.log[lang];
18 thành
// Array of strings
let lang = ["HTML", "CSS", "Javascript", "SQL", "Python", "Dart", "Basic"];

// Using sort method
lang.sort[];
console.log[lang];
19

Ví dụ

let num = [5, 1];

// Using sort method
num.sort[];
console.log[num]; // [1, 5]

// similarly taking more than 2 numbers
let num2 = [5, 1, 3, 2, 4];

num2 = num2.sort[];
console.log[num2]; // [1, 2, 3, 4, 5]
3▶ Thử Chạy Tại Đây

Sắp xếp mảng chuỗi

Sắp xếp chuỗi của mảng rất đơn giản bằng JavaScript, chỉ cần áp dụng phương thức

let num = [5, 2, 12, 56, 263, 1];

// using sort method
num.sort[];
console.log[num];
0 trên mảng chuỗi và theo mặc định, nó sẽ sắp xếp một mảng chuỗi theo thứ tự tăng dần

Ví dụ

let num = [5, 1];

// Using sort method
num.sort[];
console.log[num]; // [1, 5]

// similarly taking more than 2 numbers
let num2 = [5, 1, 3, 2, 4];

num2 = num2.sort[];
console.log[num2]; // [1, 2, 3, 4, 5]
4▶ Chạy thử tại đây

# Sắp xếp đảo ngược

Để so sánh các chuỗi theo thứ tự đảo ngược, hãy sử dụng hàm so sánh. Bạn cần thay đổi logic của hàm so sánh và chuyển nó sang phương thức

// Array of strings
let lang = ["HTML", "CSS", "Javascript", "SQL", "Python", "Dart", "Basic"];

// Using sort method
lang.sort[];
console.log[lang];
16 như trong đoạn mã bên dưới

Ví dụ

let num = [5, 1];

// Using sort method
num.sort[];
console.log[num]; // [1, 5]

// similarly taking more than 2 numbers
let num2 = [5, 1, 3, 2, 4];

num2 = num2.sort[];
console.log[num2]; // [1, 2, 3, 4, 5]
5▶ Thử Chạy Tại Đây

Sắp xếp các ký tự không phải ASCII

Để sắp xếp các chuỗi có ký tự không phải ASCII, tôi. e. Chuỗi từ các ngôn ngữ khác é, è, a, ä, v.v. Sử dụng

// Array of strings
let lang = ["HTML", "CSS", "Javascript", "SQL", "Python", "Dart", "Basic"];

// Using sort method
lang.sort[];
console.log[lang];
22

Hàm này có thể so sánh các ký tự không phải ASCII để chúng xuất hiện theo đúng thứ tự

Ví dụ

let num = [5, 1];

// Using sort method
num.sort[];
console.log[num]; // [1, 5]

// similarly taking more than 2 numbers
let num2 = [5, 1, 3, 2, 4];

num2 = num2.sort[];
console.log[num2]; // [1, 2, 3, 4, 5]
6▶ Chạy thử tại đây

Javascript sắp xếp mảng đối tượng

Để sắp xếp một mảng các đối tượng, bạn không thể trực tiếp sử dụng phương thức

let num = [5, 2, 12, 56, 263, 1];

// using sort method
num.sort[];
console.log[num];
0. Bạn sẽ phải sử dụng hàm so sánh để quyết định thứ tự của các đối tượng tùy thuộc vào các giá trị thuộc tính khác nhau.

Tạo một hàm so sánh và so sánh các giá trị thuộc tính của hai đối tượng. Hàm so sánh này sẽ được truyền cho phương thức

let num = [5, 2, 12, 56, 263, 1];

// using sort method
num.sort[];
console.log[num];
0

Ở đây để sắp xếp mảng đối tượng theo độ tuổi của nhân viên bạn có thể sử dụng

// Array of strings
let lang = ["HTML", "CSS", "Javascript", "SQL", "Python", "Dart", "Basic"];

// Using sort method
lang.sort[];
console.log[lang];
25 để so sánh 2 đối tượng. Xem mã hoàn chỉnh bên dưới

Ví dụ

let num = [5, 1];

// Using sort method
num.sort[];
console.log[num]; // [1, 5]

// similarly taking more than 2 numbers
let num2 = [5, 1, 3, 2, 4];

num2 = num2.sort[];
console.log[num2]; // [1, 2, 3, 4, 5]
7▶ Thử Chạy Tại Đây

Đầu ra sử dụng

javascript sắp xếp mảng các đối tượng theo khóa [ngày tham gia]

Hãy sắp xếp đối tượng trên cơ sở thuộc tính ngày tham gia

Vì 'tham gia' trong đối tượng là một giá trị chuỗi, trước tiên hãy chuyển đổi giá trị của giá trị chuỗi tham gia thành một đối tượng ngày và sau đó sử dụng giá trị này trong hàm so sánh để trả về giá trị

Ví dụ

let num = [5, 1];

// Using sort method
num.sort[];
console.log[num]; // [1, 5]

// similarly taking more than 2 numbers
let num2 = [5, 1, 3, 2, 4];

num2 = num2.sort[];
console.log[num2]; // [1, 2, 3, 4, 5]
8▶ Thử Chạy Tại Đây

Đầu ra sử dụng giao diện điều khiển. cái bàn

Sắp xếp các đối tượng theo thuộc tính chuỗi

Để sắp xếp mảng nhân viên theo tên của họ, hãy chuyển đổi tên nhân viên thành chữ thường và chuyển nó vào hàm so sánh

Làm cách nào để sắp xếp một mảng bằng vòng lặp for trong JavaScript?

Làm cách nào để bạn sắp xếp một mảng theo thứ tự tăng dần cho vòng lặp? .
Khai báo và khởi tạo mảng
Lặp qua mảng và chọn một phần tử
Vòng lặp bên trong sẽ dùng để so sánh phần tử được chọn từ vòng lặp bên ngoài với các phần tử còn lại của mảng

Làm cách nào để sắp xếp lại mảng trong JavaScript?

Sử dụng hàm sort[] . Nếu đầu ra là âm, a sẽ được sắp xếp trước b. Nếu đầu ra là 0 [không], sẽ không có thay đổi nào xảy ra. Nếu đầu ra là dương, b sẽ được sắp xếp trước a.

Chúng ta có thể sắp xếp một mảng với một vòng lặp không?

Có thể sắp xếp mảng bằng một vòng lặp không? . Trên thực tế, không phải là không thể làm như vậy . Nhưng làm như vậy sẽ không hiệu quả nhất.

Làm cách nào để sắp xếp một mảng trong JavaScript mà không sử dụng phương thức sắp xếp?

hàm ordre[liste]{ var result=[]; . chiều dài; . chiều dài;

Chủ Đề