我有一个字符串数组,其中包含一个可选的两个字母的字符串,表示春天或秋天,后跟一个四位数的年份,即作为以下示例之一:
var example_data = ["HT2014", "VT2013", "2017"];
我想对这个数组进行排序,使其主要按年份排序(即四位数字,作为数字),然后(如果年份相等)对其进行排序,使 VT 排在第一位,HT 位于中间并且未指定春季或秋季的条目是最后一个。
如果我sort()
正确理解了 JavaScript 函数,我应该能够实现一个sortFunction
告诉我两个对象中的哪一个应该是第一个,然后只需调用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"
正确(除了可能是一系列荒谬的嵌套s...)。(另外,我知道上面的代码对于示例数据中的第三项会失败,因为只有 1 个元素。我会处理的......)"VT"
""
if
"2017.split("T")
这是一个好方法吗?如果是 - 我如何完成功能来做我想做的事?如果没有 - 我应该怎么做?