世の中には辞書順という便利なものがあります。しかし、意外とオリジナルの順序を作りソートするプログラムは見かけません。
例えば麻雀では「東」「南」「西」「北」という4つの牌があります。これら4種類のみからなる配列を「東南西北」という順にソートすることを考えます。
結論はこうです。
const arr = ['東', '西', '東', '北', '西', '南']; arr.sort((a, b) => { return '東南西北'.indexOf(a) -'東南西北'.indexOf(b); }); // arr: ["東", "東", "南", "西", "西", "北"]
「4種類のみからなる」と仮定してあるので、indexOfがマイナスになることはありません。
みなさんも自分のオリジナル辞書順作りましょう!