Я пытаюсь заказать поле выбора и optgroup. У меня есть сортировка моих выбранных вариантов. Нужна помощь в сортировке optgroup. Затем сортировка вариантов.
function sort_select(as, bs){
var a, b, a1, b1, i= 0, n, L,
rx=/(\.\d+)|(\d+(\.\d+)?)|([^\d.]+)|(\.\D+)|(\.$)/g;
if (as=== bs) return 0;
a= as.toLowerCase().match(rx);
b= bs.toLowerCase().match(rx);
L= a.length;
while(i<L){
if (!b[i]) return 1;
a1= a[i],
b1= b[i++];
if (a1!== b1){
n= a1-b1;
if (!isNaN(n)) return n;
return a1>b1? 1:-1;
}
}
return b[i]? -1:0;
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


$(document).ready(function () {
function byLabel(a,b){
return (a.label < b.label) ? -1 : (a.label > b.label) ? 1 : 0;
}
var sortedOpts = $('#products').children('optgroup');
sortedOpts.sort(byLabel);
$('#products').append(sortedOpts);
$('#products optgroup').each(function(o,i){
var so = $(this).children().sort(byLabel);
$(this).append(so);
})
});
https://jsfiddle.net/xyk2L4w1/12/
Спасибо, мне придется немного изменить его, чтобы он соответствовал моим буквенно-цифровым символам.