【发布时间】:2021-10-25 12:25:00
【问题描述】:
我有以下数组:
let datas = ["nov/2018", "set/2018", "jan/2019", "dez/2018", "out/2018"]
当我执行时
datas.sort()
他按字母顺序排序,但是,我必须先按年份排序,然后再按字母顺序。
["dez/2018", "jan/2019", "nov/2018", "out/2018", "set/2018"]
今天测试我到了下面这行代码:
var datas = ["mar", "abr", "jan", "dez", "set", "mai", "jun", "out", "jul"];
var datas_corretas = ["jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"];
var result = [];
datas_corretas.forEach(function ordenar(element, index){
var mes = datas.filter(function(valor){
return valor == datas_corretas[index];
});
result.push(mes[0]);
for(element of result){
if (element === undefined || element === null){
result.pop(element);
}
}
});
console.log(result);
这样我可以对数据进行排序,但问题是当我将它与年份一起使用时
var datas = ["mar/2018", "abr/2018", "jan/2019", "dez/2018", "set/2018", "mai/2018", "jun/2018", "out/2018", "jul/2018"];
有人知道我该如何解决这个问题吗?
【问题讨论】:
-
“然后按字母顺序”是什么意思?
-
那么对于给定的输入,您希望输出是什么确切?你真的想把这些按日期顺序排列吗?如果是这样,那么您需要先比较年份部分,然后再比较月份部分来sort。
-
请同时添加想要的结果。
标签: javascript arrays sorting date