Сортировка массива с объектами на javascript
Здравствуйте! У меня появилась одна интересная задача. Есть массив объектов. Каждый объект из данного массива представляет из себя описание какой-то ошибки.
Каждый объект имеет такие свойства: var object1 = { 'fieldName': 'dec_table_row_r74c1', 'error_code': parseInt('004', 10), 'msg' : 'Описание ошибки' } 'fieldName' - это имя текстового поля, которая вызвала данную ошибку. То есть поле которое не было заполнена правильно. 'error_code' - это код ошибки 'msg' - это описание ошибки Для общего представления: Есть страница с большой формой, каждое поле из этой формы имеет свои правила заполнения. Если мы заполнили не правильно несколько полей, то перед отправки формы появляется список ошибок. Пример списка с ошибками: Строка 31, колонка 2 - код ошибки: 05-014. Описание ошибки: Вы не заполнили правильно поле Строка 10, колонка 3 - код ошибки: 05-021. Описание ошибки: Вы не заполнили правильно поле Строка 20, колонка 3 - код ошибки: 05-021. Описание ошибки: Вы не заполнили правильно поле Строка 30, колонка 3 - код ошибки: 05-021. Описание ошибки: Вы не заполнили правильно поле Строка 31, колонка 3 - код ошибки: 05-021. Описание ошибки: Вы не заполнили правильно поле Строка 20, колонка 4 - код ошибки: 05-021. Описание ошибки: Вы не заполнили правильно поле Строка 30, колонка 4 - код ошибки: 05-021. Описание ошибки: Вы не заполнили правильно поле Строка 50, колонка 4 - код ошибки: 05-021. Описание ошибки: Вы не заполнили правильно поле Строка 31, колонка 2 - код ошибки: 05-024. Описание ошибки: Вы не заполнили правильно поле Суть задачи: Нужно отсортировать эти ошибки по коду ошибки(я это уже сделал), потом нужно отсортировать по строкам и потом по колонкам. Получается что надо отсортировать этот список таким образом: Строка 31, колонка 2 - код ошибки: 05-014. Описание ошибки: Вы не заполнили правильно поле Строка 10, колонка 3 - код ошибки: 05-021. Описание ошибки: Вы не заполнили правильно поле Строка 20, колонка 3 - код ошибки: 05-021. Описание ошибки: Вы не заполнили правильно поле Строка 20, колонка 4 - код ошибки: 05-021. Описание ошибки: Вы не заполнили правильно поле Строка 30, колонка 3 - код ошибки: 05-021. Описание ошибки: Вы не заполнили правильно поле Строка 30, колонка 4 - код ошибки: 05-021. Описание ошибки: Вы не заполнили правильно поле Строка 31, колонка 3 - код ошибки: 05-021. Описание ошибки: Вы не заполнили правильно поле Строка 50, колонка 4 - код ошибки: 05-021. Описание ошибки: Вы не заполнили правильно поле Строка 31, колонка 2 - код ошибки: 05-024. Описание ошибки: Вы не заполнили правильно поле Я уже отсортировал этот список по коду ошибки, используя функцию sort(), но не знаю как в тоже время отсортировать его по строкам и по колонкам. Подскажите пожалуйста как можно эту задачу реализовать ? Вот как я сделал сортировку по коду ошибки: var object1 = { 'fieldName': 'dec_table_row_r74c1', 'error_code': parseInt('004', 10), 'msg' : 'Error a' } var object2 = { 'fieldName': 'dec_table_row_r74c2', 'error_code': parseInt('024', 10), 'msg' : 'Error b' } var object3 = { 'fieldName': 'dec_table_row_r74c3', 'error_code': parseInt('021', 10), 'msg' : 'Error c' } var object4 = { 'fieldName': 'dec_table_row_r74c4', 'error_code': parseInt('016', 10), 'msg' : 'Error d' } var arr_objects = [object1, object2, object3, object4]; arr_objects.sort(function(a, b){ return a.error_code - b.error_code; }); |
sergiu920,
return a.error_code - b.error_code || a.строка - b.строка || a.колонка- b.колонка |
Огромное спасибо!
|
Часовой пояс GMT +3, время: 06:02. |