.sort () для объектов с вложенной датой - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь отсортировать массив объектов по дате, но мне не везет. Может быть, вы видите, что я делаю неправильно?

Сначала я сопоставляю массив объектов, называемых 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 
                            } }))
            })}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...