У JS есть великолепные инструменты для работы с массивами, один из них →
.sort(), который позволяет не перебирать ручками все ключи со значениями.
А для сравнения двух и более достигается с помощью оператора ИЛИ (||). Таким образом:
array.sort((a,b) => { return a.z - b.z || a.y - b.y })
Где
z
и
y
ключи объекта в массиве, а разница → «направление» смещения.
ЗЫ: в зависимости от типа полей их можно суммировать для достижения определенных результатов, к примеру развернув дату и добавив ее к строке:
array.sort((a,b) => {
if('20200520a' < '20200520б'){
return 1;
}
else {
return -1;
}
})
Последний вариант требует тщательного изучения принципа работы. Так же рекомендую сразу начинать присматриваться к
.map().