Сортировка 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>';
После чего все корректно сортируется