Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.12.2018, 21:00
Аватар для sergiu920
Новичок на форуме
Отправить личное сообщение для sergiu920 Посмотреть профиль Найти все сообщения от sergiu920
 
Регистрация: 11.10.2016
Сообщений: 3

Сортировка массива с объектами на 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; 
 
        });
Ответить с цитированием
  #2 (permalink)  
Старый 06.12.2018, 21:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,059

sergiu920,
return a.error_code - b.error_code || a.строка - b.строка || a.колонка- b.колонка
Ответить с цитированием
  #3 (permalink)  
Старый 07.12.2018, 09:47
Аватар для sergiu920
Новичок на форуме
Отправить личное сообщение для sergiu920 Посмотреть профиль Найти все сообщения от sergiu920
 
Регистрация: 11.10.2016
Сообщений: 3

Огромное спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива Nikolay37 Элементы интерфейса 2 30.09.2017 23:57
Петербург: Javascript + Canvas. Разработчик для портирования игры. В офис. waxattack Работа 0 21.07.2016 15:06
Сортировка DIV на "чистом" JavaScript Feuerman063 Элементы интерфейса 31 21.10.2015 14:03
Редактирование массива с помощью инструментов javascript type jQuery 7 15.10.2015 21:48
Первый Moscow JavaScript Meetup korenyushkin Общие вопросы Javascript 0 26.07.2011 15:23