有没有办法用JavaScript对一个赛季列表进行排序?

有没有办法用JavaScript对一个赛季列表进行排序?,javascript,Javascript,我想对包含“Spring2008”、“Spring2009”等的数组进行排序 我知道如何使用python。在JavaScript中是否有这样做的方法 l = ['Fall 2014', 'Spring 2015', 'Fall 2008', 'Spring 2008', 'Summer 2008', 'Winter 2008'] def key(x): seas, year = x.split() return -int(year), seas != "Fall", seas !

我想对包含“Spring2008”、“Spring2009”等的数组进行排序

我知道如何使用python。在JavaScript中是否有这样做的方法

l = ['Fall 2014', 'Spring 2015', 'Fall 2008', 'Spring 2008', 'Summer 2008', 'Winter 2008']
def key(x):
    seas, year = x.split()
    return -int(year), seas != "Fall", seas != "Summer"
l.sort(key=key)
l.reverse()
print(l)

# OUTPUT : ['Winter 2008', 'Spring 2008', 'Summer 2008', 'Fall 2008', 'Fall 2014', 'Spring 2015']

您可以拆分字符串并从对象中获取月份的值

var-months={春季:1,夏季:2,秋季:3,冬季:4},
数据=[‘2014年秋季’、‘2015年春季’、‘2008年秋季’、‘2008年春季’、‘2008年夏季’、‘2008年冬季’];
数据排序((a,b)=>{
var aa=a.分割(“”),
bb=b.分割(“”);
返回aa[1]-bb[1]|月[aa[0]]-月[bb[0]];
});

控制台日志(数据)如果我们假设“Winer”总是在“Summer”之前出现,尽管2008年6月1日和2008年12月1日可能正好相反,我会做以下操作:

const src=[“2014年秋季”、“2015年春季”、“2008年秋季”、“2008年春季”、“2008年夏季”、“2008年冬季”];
const seasiontonum=str=>([seasure,year]=str.split(“”),year+(['Winter'、'Spring'、'Summer'、'Fall')。指数(seasure)+1)/4);
常数res=src.sort((a,b)=>季节性(a)-季节性(b));

控制台日志(res)
2018年冬季
如果是2018年1月1日和2018年6月1日,可能会在2018年夏季
之前,如果是2018年12月1日和2018年6月1日,可能会在2018年12月1日和2018年6月1日之后。您将如何处理这一问题?您是否已解决该问题或仍在寻求解决方案?其中一些答案解决了您的问题吗?这个答案不会产生预期的输出,但可能会通过
var-months={Winter:1,Spring:2,Summer:3,Fall:4}