Сортировка массива с объектами на 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, время: 15:41. |