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?