Ordenar matriz por reglas predefinidas
Tengo una variedad de monedas["GBP", "EUR", "NOK", "DKK", "SKE", "USD", "SEK", "BGN"]
. Me gustaría ordenarlo moviendo una lista predefinida si la moneda está presente al comienzo de la matriz. La lista predefinida es['EUR', 'USD', 'DKK', 'SKE', 'NOK', 'GBP']
. Entonces en este caso debería regresar['EUR', 'USD', 'DKK', 'SKE', 'NOK', 'GBP', 'SEK', BGN']
.
Pero en caso de que la matriz no filtrada no contenga todos los valores en la lista predefinida, también debe ordenarla correctamente. Por ejemplo :["GBP", "EUR", "NOK", "LTU", "ZGN"]
debería verse como['EUR', 'NOK', 'GBP', 'LTU', 'ZGN'
Estaba tratando de ordenarlo usando esta función:
list.sort(c => ['EUR', 'USD', 'DKK', 'SKE', 'NOK', 'GBP'].indexOf(c))
pero coloca todas las monedas predefinidas al final de la lista, no al final. Tal vez hay una mejor manera de hacerlo?