Javascript 按顺序重新排列月份顺序
我用一组月份填充数组,如下所示:Javascript 按顺序重新排列月份顺序,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我用一组月份填充数组,如下所示: var months=["March 2016","April 2016","May 2016","January 2015","February 2016"] 考虑到年份,我如何按如下顺序重新安排月份….: var months=["January 2015","February 2016","March 2016","April 2016","May 2016",] 我试图对月份进行排序(),但这不符合逻辑。对此问题有何建议?您可以使用包含月份列表的数组
var months=["March 2016","April 2016","May 2016","January 2015","February 2016"]
考虑到年份,我如何按如下顺序重新安排月份….:
var months=["January 2015","February 2016","March 2016","April 2016","May 2016",]
我试图对月份进行排序(),但这不符合逻辑。对此问题有何建议?您可以使用包含月份列表的数组作为参考,然后检查索引
var months=["March 2015","April 2016","May 2016","January 2015","February 2016"];
var m = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
months.sort(function(a,b){
var yearA = a.split(" ")[1];
var yearB = b.split(" ")[1];
if (yearA != yearB){ return +yearA - +yearB ;}
return m.indexOf(a.split(" ")[0]) - m.indexOf(b.split(" ")[0]);
});
// ["January 2015", "March 2015", "February 2016", "April 2016", "May 2016"]
您可以将两者转换为日期对象,然后使用排序
["March 2016","April 2016","May 2016","January 2015","February 2016"].sort(function(a, b) {
return new Date("1 " + a) - new Date("1 " + b);
})
编辑:感谢@Hacketo指出,
getTime()
(答案的原始版本)实际上不是必需的。您可以将对象与月份的顺序值一起使用,并按年份和月份值对其进行排序
var月数=[“2016年3月”、“2016年4月”、“2016年5月”、“2015年1月”、“2016年2月];
月份。排序(功能(a、b){
var MONTH={1月:0日,2月:1日,3月:2日,4月:3日,5月:4日,6月:5日,7月:6日,8月:7日,9月:8日,10月:9日,11月:10日,12月:11日},
aa=a.分割(“”),
bb=b.分割(“”);
返回aa[1]-bb[1]|月[aa[0]]-月[bb[0]];
});
document.write(“”+JSON.stringify(月、0、4)+“”)代码>“我正在填充一个数组”->填充时,数据是否已经以这些字符串的形式存在,或者此时您是否可以访问其他形式的数据(例如实际日期对象)?使用foreach和键值对、、、拆分值..首先根据数字(即年份)排列,然后创建自己的数组,如1=>January,2=>二月,3=>三月等等。。。使用此数组根据月份进行排序(当您已经有了针对年份的排序数组时),年份是否与所需的排序顺序有任何关系?是,@Xotic750。它有