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?

questionAnswers(4)

yourAnswerToTheQuestion