Organizar ordem por regras predefinidas
Eu tenho uma variedade de moedas["GBP", "EUR", "NOK", "DKK", "SKE", "USD", "SEK", "BGN"]
. Gostaria de ordená-lo movendo a lista predefinida se a moeda estiver presente no início da matriz. A lista predefinida é['EUR', 'USD', 'DKK', 'SKE', 'NOK', 'GBP']
. Portanto, neste caso, ele deve retornar['EUR', 'USD', 'DKK', 'SKE', 'NOK', 'GBP', 'SEK', BGN']
.
Porém, caso a matriz não filtrada não contenha todos os valores na lista predefinida, ela também deve ordená-la corretamente. Por exemplo :["GBP", "EUR", "NOK", "LTU", "ZGN"]
deve parecer['EUR', 'NOK', 'GBP', 'LTU', 'ZGN'
Eu estava tentando classificá-lo usando esta função:
list.sort(c => ['EUR', 'USD', 'DKK', 'SKE', 'NOK', 'GBP'].indexOf(c))
mas coloca todas as moedas predefinidas no final da lista, não no de. Talvez haja uma maneira melhor de fazer isso?