Array nach vordefinierten Regeln ordnen

Ich habe eine Reihe von Währungen["GBP", "EUR", "NOK", "DKK", "SKE", "USD", "SEK", "BGN"]. Ich möchte es durch Verschieben der vordefinierten Liste bestellen, wenn die Währung am Anfang des Arrays vorhanden ist. Vordefinierte Liste ist['EUR', 'USD', 'DKK', 'SKE', 'NOK', 'GBP']. In diesem Fall sollte es also @ zurückgebe['EUR', 'USD', 'DKK', 'SKE', 'NOK', 'GBP', 'SEK', BGN'].

Aber falls das ungefilterte Array nicht alle Werte in der vordefinierten Liste enthält, sollte es auch richtig sortiert sein. Zum Beispiel :["GBP", "EUR", "NOK", "LTU", "ZGN"] Sollte aussehen, wie['EUR', 'NOK', 'GBP', 'LTU', 'ZGN'

Ich habe versucht, es mit dieser Funktion zu sortieren:

list.sort(c => ['EUR', 'USD', 'DKK', 'SKE', 'NOK', 'GBP'].indexOf(c))

setzt aber alle vordefinierten Währungen an das Ende der Liste, nicht an das von. Vielleicht gibt es dafür einen besseren Weg?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage