Сортировать объект JavaScript по категории, а затем по сообщениям категории - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть 4 категории, которые должны отображаться в порядке, указанном в массиве ниже. Я пытаюсь отсортировать по этим категориям, а затем сортировать сообщения в каждой категории по алфавиту.

Я представил цикл в приведенном ниже коде, но я не уверен, как добавить мои отсортированные сообщения обратно в объект messagesL, который передается в остальной код. Любые советы будут с благодарностью.

Вот мой код:

PKG.render = function(work,PKG) {
            var data = work.details;
            var messagesL = new util.LocalDataSource(data);
            messagesL.responseSchema = {
                    resultsList: "messages",       
                    fields: [
                        "messageId",
                        "category",
                        "message"
                        ]
            };
            /*there could be more categories, ignore them*/
            var categories = ["Mentoring", "Availability", "Affordability", "Scalability", "Info"];
            var messagesColumnDefs = [
                         { key: "Id", label: "ID"},
                         { key: "category", label: "Category"},
                         { key: "message", label: "Text"}
            ];

            var messagesConfig = {  MSG_EMPTY: 'There are no messages to display.',
                                    MSG_ERROR: 'Error while loading table'
                                };
            var sortedMessagesByCategory;
            for (var i = 0; i < categories.length; i++) 
            {
                var messagesByCategory;
                for(var j = 0; j < data.messages.length; j++)
                {
                  if(data.messages[j].category === categories[i])
                      messagesByCategory.push(data.messages[j].message);
                }
                if(typeof messagesByCategory !== "undefined")
                    messagesByCategory.sort();
                /*not sure how to add sorted messages back in messagesL object*/
            }          
            messagesTable = new widget.DataTable('wrmessagesTable', messagesColumnDefs, messagesL, messagesConfig);
            workResultsWidgetCollectionPush(messagesTable);
        } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...