Javascript 日期代码之间的比较

Javascript 日期代码之间的比较,javascript,arrays,comparison,string-comparison,comparison-operators,Javascript,Arrays,Comparison,String Comparison,Comparison Operators,我有一个值数组,如下所示: var array_1 = ["1W", "2W", "3W","1M", "2M", "3M", "6M","9M","1Y"] W代表周,M代表月,Y代表年。如何进行字符串比较,以便 “1Y”>“9M” 将返回真值您可以使用相同的基数,例如每个信息的天数,并使用相当于天数的信函返回产品 函数getDays(字符串){ 返回string.slice(0,-1)*{W:7,M:30,Y:365}[string.slice(-1)]; } 变量数组=[“1W”、“2

我有一个值数组,如下所示:

var array_1 = ["1W", "2W", "3W","1M", "2M", "3M", "6M","9M","1Y"]
W代表周,M代表月,Y代表年。如何进行字符串比较,以便

“1Y”>“9M”


将返回真值

您可以使用相同的基数,例如每个信息的天数,并使用相当于天数的信函返回产品

函数getDays(字符串){
返回string.slice(0,-1)*{W:7,M:30,Y:365}[string.slice(-1)];
}
变量数组=[“1W”、“2W”、“3W”、“1M”、“2M”、“3M”、“6M”、“9M”、“1Y”]

log(array.map(getDays))这是一个易于扩展的简单解码器

本质上,它过滤数值,然后根据在字符串中找到的时间符号(W,M,…)将其乘以某个常数

函数decodeDateCode(dateCode){
var numeric=parseInt(dateCode.replace(/\D/igm'),10);
如果(dateCode.indexOf(“D”)>=0){
返回数字;
}
if(dateCode.indexOf(“W”)>=0){
返回数字*7;
}
if(dateCode.indexOf(“M”)>=0){
返回数字*(365/12);
}
if(dateCode.indexOf(“Y”)>=0){
返回数值*365;
}
}
//试验
var日期代码=[“1W”、“2W”、“3W”、“1M”、“2M”、“3M”、“6M”、“9M”、“1Y”、“50W”];
//解码整个列表
log(“解码列表:”,datecode.map(decodeddatecode));
//按降序排列整个列表
log(“排序的降序列表:”,dateCodes.sort(函数a,b){
返回decodeDateCode(b)-decodeDateCode(a);
}));
//简单比较
log(“简单比较:”,decodeDateCode(“1Y”)>decodeDateCode(“9M”)