Сортировка options в select на js

function loadsterjq(data) {

   data = JSON.parse(data);
    var out = '<select style="width: 210px;">';
    out += '<option data-id="">Выбрать:</option>';
    for (var id in data) {
        out +=`<option data-id="${id}">${data[id].diametr} x ${data[id].dlina}</option>`;
    }
    out +='</select>';

}

При запуске сортирует по id, а мне надо по data[id].diametr. Как можно реализовать?


Ответы (2 шт):

Автор решения: Igor
data.sort((a, b) => a.diametr - b.diametr);
for (var id in data) {
    out +=`<option data-id="${id}">${data[id].diametr} x ${data[id].dlina}</option>`;
}
→ Ссылка
Автор решения: Андрей Панов
data = JSON.parse(data);
    const massiv = [];
    for (var q in data) {
        massiv.push(data[q]);
    }
    massiv.sort(function(a, b){return a.thickness - b.thickness;});
    var out = '<select>';
    out += '<option data-id="">Выберите:</option>';
    for (var id in massiv) {
        out +=`<option data-id="${id}">${massiv[id].thickness} x (${massiv[id].dimensions})</option>`;
    }
    out +='</select>';

После чего все корректно сортируется

→ Ссылка