Opción de selección de selección en Javascript: basada en múltiples valores en la misma fila

Creé un cuadro de lista como este y creé una barra de título que ayuda a ordenar los datos:

ID Name ------------------------------------------------------------ ID1 Identity One ID2 Identity Two ID3 Identity Three ID4 Identity Four ------------------------------------------------------------- 

Tengo un requisito para ordenar la lista anterior basada en ID y también en Nombre, es decir, cuando el usuario hace clic en ID, debe ordenar la lista en función de la ID y viceversa. Pero el problema es de la capa de datos que estamos obteniendo así en una sola línea:

 ID1   &nbsp:Idenitity One 

Así que estamos imprimiendo lo mismo en la etiqueta de opciones, y obteniendo resultados como el anterior. El código para generar el resultado anterior es:

    ID1     Identity One   ID2     Identity Two   ID4     Identity Four   ID3     Identity Three  

Mi pregunta es ¿cómo implemento el recurso de clasificación para el escenario anterior? Sí, traté de ordenar, pero está ordenando todo el cuadro de lista, no basado en un solo valor. Al menos ahora, lo que puedo hacer es formatear los datos entrantes de tal manera que coloque todos los Id. En una matriz y los nombres en otra, de modo que cualquier guía / punteros sobre esto se agradece. Por favor, hágamelo saber si no he explicado claramente

EDITAR:

Código Intenté ordenar un cuadro de lista

 function sortSelect(selElem) { var tmpAry = new Array(); for (var i=0;i 0) { selElem.options[0] = null; } for (var i=0;i<tmpAry.length;i++) { var op = new Option(tmpAry[i][0], tmpAry[i][1]); selElem.options[i] = op; } return; } 

Puede usar la ordenación de matriz personalizada eche un vistazo a esta sección ¿Cómo ordenar la base de selección en una identificación?

La idea aquí es simplemente crear una matriz y ordenarla en función de su valor y luego crear dinámicamente la opción en función del valor ordenado.

Código de clasificación personalizado

 source.sort(function (x, y) { if (isAsc) return y.id - x.id; else return x.id - y.id; });