Làm cách nào để sắp xếp mảng đối tượng dựa trên điều kiện JavaScript?
Sắp xếp đề cập đến quá trình sắp xếp dữ liệu theo một thứ tự cụ thể, tăng hoặc giảm. Chúng tôi có thể đã sắp xếp các loại dữ liệu khác nhau trong javascript, ví dụ: mảng, danh sách, bản đồ, v.v. Show
Sắp xếp một mảng các đối tượng trong javascript có thể được thực hiện bằng cách sử dụng mảng thông thường. sort() trong javascript và bắt buộc phải truyền hàm so sánh, hàm này sẽ xác định mảng đối tượng của chúng ta sẽ được sắp xếp trên cơ sở nào Phạm vi
Giới thiệuMảng đối tượng là tập hợp nhiều đối tượng trong một mảng. Chúng ta phải biết rằng một đối tượng là một tập hợp các cặp khóa-giá trị không có thứ tự. Do đó, mảng đối tượng của chúng tôi chứa các cặp khóa-giá trị, có thể được truy cập bằng '. ' (dấu chấm) toán tử Trong JavaScript, các mảng đi kèm với một hàm tích hợp sẵn sort(), với mục tiêu chính là sắp xếp bất kỳ phần tử nào dựa trên thứ tự bảng chữ cái Phương thức sort() sắp xếp các phần tử của mảng tại chỗ và trả về mảng đã sắp xếp, mặc định sắp xếp theo thứ tự tăng dần Thông thường, chúng ta có thể sắp xếp một mảng các đối tượng bằng Array. chức năng sắp xếp trong javascript. Việc sắp xếp dựa trên giá trị của thuộc tính mà mọi đối tượng có. Tuy nhiên, chúng ta cần cung cấp phương thức sort(), một hàm xác định cách sắp xếp của chúng ta sẽ hoạt động hay đơn giản là cơ chế sắp xếp. Thông thường, việc sắp xếp dựa trên giá trị của thuộc tính mà mọi đối tượng có. Chúng ta có thể sử dụng Mảng. chức năng sắp xếp, nhưng chúng tôi cần cung cấp một chức năng xác định cơ chế sắp xếp của chúng tôi Ví dụ: có nhiều khối có chiều dài và chiều rộng khác nhau trong hình trên. Chúng tôi quyết định sắp xếp chúng dựa trên chiều rộng của chúng và do đó chúng tôi nhận được kết quả đó Nếu chúng tôi sắp xếp chúng dựa trên độ dài của chúng, chúng tôi sẽ nhận được kết quả bên dưới Do đó, trong khi sắp xếp một mảng các đối tượng trong JavaScript, nó chủ yếu phụ thuộc vào hàm chúng ta xác định để sắp xếp mảng của mình Sự miêu tảChúng tôi có thể sắp xếp một mảng các đối tượng trong JavaScript bằng cách sử dụng Mảng tích hợp của chúng tôi. sort(), tuy nhiên, chúng ta phải chuyển một hàm tùy chỉnh cho phương thức sắp xếp tích hợp sẵn của mình. Hàm này là cần thiết để so sánh các thuộc tính dựa trên đó chúng ta muốn sắp xếp mảng đối tượng của mình Mảng thông thường. phương thức sort() không hoạt động trên một mảng đối tượng. Ví dụ, Trong hình trên, bạn có thể thấy rằng khi chúng ta sắp xếp một chuỗi các chuỗi bằng Arrays. sort(), nó sẽ được sắp xếp dễ dàng. Nhưng khi chúng ta cố gắng sắp xếp một mảng các đối tượng Ví dụ, ở đây chúng ta có một mảng các đối tượng. Tên hoa và giá của chúng, trong trường hợp đó, Mảng bình thường của chúng tôi. Phương thức sắp xếp () không hoạt động. Do đó, chúng ta cần chuyển một hàm tùy chỉnh cho phương thức sắp xếp của mình, dựa vào đó nó sẽ có thể sắp xếp mảng đối tượng của chúng ta cú phápCú pháp sắp xếp một mảng các đối tượng trong JavaScript được đưa ra dưới đây
Thông sốMảng. hàm sort() lấy hàm so sánh làm tham số. Nói chung, hàm so sánh là một tham số tùy chọn, nhưng khi nói đến mảng đối tượng, nó trở nên quan trọng Về cơ bản, hàm so sánh chỉ định một hàm xác định thứ tự sắp xếp của mảng đối tượng của chúng ta. Hàm so sánh có thể được truyền cho phương thức sắp xếp dưới dạng hàm mũi tên, hàm so sánh nội tuyến hoặc hàm bình thường Giá trị trả vềPhương thức sort() trả về một mảng các đối tượng đã được sắp xếp. Ngoài ra, việc phân loại được thực hiện tại chỗ. Bằng cách sắp xếp tại chỗ, chúng tôi muốn nói rằng không có bản sao riêng biệt nào của mảng được tạo sau khi sắp xếp. Do đó, phải mất một lượng không gian không đổi để sắp xếp mảng các đối tượng Hàm so sánhĐể sắp xếp một mảng các đối tượng trong JavaScript, hãy sử dụng phương thức sort() với hàm so sánh. Hàm so sánh giúp chúng ta viết logic trong việc sắp xếp mảng các đối tượng. Chúng cho phép chúng tôi sắp xếp các mảng đối tượng theo chuỗi, số nguyên, ngày tháng hoặc bất kỳ thuộc tính tùy chỉnh nào khác Hàm so sánh trả về giá trị âm, 0 hoặc dương, tùy thuộc vào các đối số được truyền cho nó Khi hàm sort() so sánh hai giá trị, nó sẽ gửi các giá trị tới hàm so sánh và sắp xếp các giá trị theo giá trị được trả về (âm, 0, dương) bởi hàm so sánh. Hãy để chúng tôi xem, khi một hàm so sánh trả về một giá trị cụ thể
Về cơ bản, nó có thể được hình dung như dưới đây
Tạo, hiển thị và sắp xếp một mảngHãy để chúng tôi tạo, hiển thị và sau đó sắp xếp một mảng hoặc một đối tượng dựa trên giá trị của nó. Chúng ta cũng sẽ xem cách viết hàm sắp xếp Mã số
Ghi chú. Chúng ta nên xử lý trường hợp bằng 0, khi giá trị của cả hai đối tượng là như nhau, để tránh hoán đổi không cần thiết Bây giờ, chúng ta cũng hãy xử lý trường hợp sắp xếp mảng sản phẩm dựa trên ngày sản xuất theo thứ tự tăng dần Mã số
Sắp xếp một mảng các đối tượng theo sốHãy để chúng tôi tạo một mảng các đối tượng và sắp xếp nó dựa trên các số. Dưới đây đưa ra là một ví dụ để mô tả cùng Mã số
Sắp xếp một mảng các đối tượng theo chuỗiBây giờ chúng ta hãy lấy một mảng các đối tượng và sắp xếp nó dựa trên các giá trị chuỗi có trong mảng Dưới đây, đoạn mã sau đây mô tả cách chúng tôi có thể sắp xếp tên của các sinh viên theo tên của họ, theo thứ tự tăng dần và không phân biệt chữ hoa chữ thường Mã số 3 Giả sử rằng chúng ta có một mảng các đối tượng sinh viên như được đưa ra trong ví dụ mã bên dưới. Chúng tôi sẽ cố gắng sắp xếp dựa trên ngày đăng ký của họ. Hãy để chúng tôi tìm hiểu cách sắp xếp một mảng các đối tượng theo ngày Để sắp xếp một mảng các đối tượng theo chuỗi ngày, tất cả những gì chúng ta cần làm là cung cấp một hàm so sánh để phân tích chuỗi ngày trước, sử dụng hàm tạo Date() mới và trừ chúng khỏi nhau Đoạn mã sau minh họa khái niệm chính về sắp xếp theo ngày trong một mảng các đối tượng Mã số 9 Ổn định sắp xếpNói chung, các thuật toán sắp xếp ổn định là những thuật toán duy trì thứ tự hoặc vị trí tương đối của việc sắp xếp các mục. Nói một cách đơn giản, các thuật toán sắp xếp ổn định duy trì vị trí của hai phần tử bằng nhau so với nhau Mảng. sắp xếp ổn định theo thông số kỹ thuật, kể từ ES 201920192019 hoặc phiên bản 101010. Trước đó, độ ổn định sắp xếp không được đảm bảo Ví dụ: giả sử chúng ta có một mảng người chơi, trong đó mỗi người chơi có tên và điểm số Bây giờ, nếu chúng ta sắp xếp những người chơi theo thứ tự điểm số giảm dần, chúng ta sẽ thấy rằng những người chơi có cùng số điểm sẽ duy trì vị trí tương đối của họ. Ví dụ: chúng tôi sắp xếp đối tượng trình phát ở trên trong mã được cung cấp bên dưới Sau đó, chúng tôi sẽ hiển thị dữ liệu của mình bằng vòng lặp forEach trong javascript Mã số 3 |