春または秋を表すオプションの 2 文字の文字列と、その後に続く 4 桁の年で構成される文字列の配列があります。つまり、次の例のいずれかです。
var example_data = ["HT2014", "VT2013", "2017"];
この配列を主に年 (数字としての 4 桁) でソートし、次に (年が等しい場合) VT が最初、HT が真ん中、そして春または秋を指定しないエントリは最後です。
sort()
JavaScript関数を正しく理解していればsortFunction
、2 つのオブジェクトのどちらを先に実行するかを示す を実装してから、 を呼び出すことができるはずdata.sort(sortFunction)
です。
私はまた、そのような に取り組み始めsortFunction
、次のことを考え出しました:
function specialSort(a,b) {
var as = a.split("T");
var bs = b.split("T");
if (as[1] != bs[1]) {
return as[1] - bs[1];
} else {
// The year is equal.
// How do I sort on term?
}
}
"HT"
コメントが示すように、並べ替えを行うために何をすべきかについての手がかりがありません"VT"
(""
ネストされた s のばかげたシリーズを除いてif
...)。(また、上記のコードは、要素が 1 つしかないため、サンプル データの 3 番目の項目で失敗することもわかってい"2017.split("T")
ます。対処します...)
これは良いアプローチですか?はいの場合 - どうすれば関数を完成させてやりたいことを実行できますか? いいえの場合 - 代わりに何をすればよいですか?