Cách sắp xếp mảng theo giá trị ngày trong JavaScript

Tìm hiểu cách sắp xếp một mảng các mục theo giá trị ngày trong JavaScript

Giả sử bạn có một mảng các đối tượng như thế này, chứa một tập hợp cácđối tượng ngày tháng:

const activities = [
  { title: 'Hiking', date: new Date('2019-06-28') },
  { title: 'Shopping', date: new Date('2019-06-10') },
  { title: 'Trekking', date: new Date('2019-06-22') }
]

Bạn muốn sắp xếp các hoạt động đó theodatebất động sản.

Bạn có thể dùngsort()phương pháp củaArray, hàm này nhận một hàm gọi lại, nhận như là tham số 2 đối tượng chứa trong mảng (mà chúng ta gọi làab):

const sortedActivities = activities.sort((a, b) => b.date - a.date)

Khi chúng tôi trả về một giá trị dương, hàm sẽ giao tiếp vớisort()rằng đối tượngbđược ưu tiên trong việc sắp xếp đối tượnga. Trả về một giá trị âm sẽ làm ngược lại.

Cácsort()phương thức trả về một mảng được sắp xếp mới, nhưng nó cũng sắp xếp mảng ban đầu tại chỗ. Do đó, cả haisortedActivitiesactivitiescác mảng hiện đã được sắp xếp. Một tùy chọn để bảo vệ mảng ban đầu không bị sửa đổi là sử dụngslice()để tạo một bản sao của mảng trước khi sắp xếp, như sau:

const sortedActivities = activities.slice().sort((a, b) => b.date - a.date)

Tải xuống miễn phí của tôiSổ tay dành cho Người mới bắt đầu JavaScript


Các hướng dẫn js khác: