Я пытаюсь отсортировать массив объектов по дате, но мне не везет. Может быть, вы видите, что я делаю неправильно?
Сначала я сопоставляю массив объектов, называемых myBookings. Затем я сопоставляю свойство 'posts' в каждом объекте, чтобы получить правильное сообщение, которое я хочу отобразить на экране. Они выглядят так, у каждого разная дата исполнения -
{
"date": "2020-05-01T15:47:37.588Z",
"type": "show",
"client": "hey!",
"clientId": "5e8b54337d9c710ca6f117fa",
"details": [
{
"title": "Performance Date",
"detail": "Fri May 22 2020",
"money": 204,
"chargeId": "dadbae58-b07d-49ef-b3a8-baf4d18a72e9"
},
{
"title": "Venue Address",
"detail": [
"dallas tx",
"hey!",
[
32.7766642,
-96.79698789999999
]
],
"money": "",
"chargeId": "2b2cbe45-32b3-4175-9380-e0ffa5fb58e5"
},
{
"title": "Base Cost",
"detail": "",
"money": 20,
"chargeId": "4f70d390-fa73-413d-9edc-0b2324442fda"
}
],
"approved": "pending",
"total": 224,
"postId": "175d099e-e6ab-4aa2-9a19-74180b3aeac4",
"rockOn": []
}
Так что у меня есть мой массив правильных постов. Я бы хотел отсортировать их по дате исполнения. Дата исполнения находится в массиве post.details с заголовком «Дата исполнения». Поэтому я вызываю .sort в моем массиве сообщений. Вот где у меня возникают проблемы - Можете ли вы сказать мне, что не так с моей функцией .sort () ниже?
{myBookings.map( band => {
return band.posts.map(post => {
if(post.clientId === user.sub.slice(6, user.sub.length)){
console.log(post)
return post
}
})
}).sort( (a, b) => {
return new Date(a.details.filter(detail => {
if(detail.title === "Performance Date"){
return detail.detail
}
})) - new Date(b.details.filter(detail => {
if(detail.title === "Performance Date"){
return detail.detail
} }))
})}