Javascript 我的算法在构造一个月-年-日期的排序数组时有什么缺陷?
我想要的是: 给定两个月-一年对,如2015年5月、2016年2月,我想构建一个类似Javascript 我的算法在构造一个月-年-日期的排序数组时有什么缺陷?,javascript,arrays,algorithm,Javascript,Arrays,Algorithm,我想要的是: 给定两个月-一年对,如2015年5月、2016年2月,我想构建一个类似 [ '5/2015', '6/2015', '7/2015', '8/2015', '9/2015', '10/2015', '11/2015', '12/2015', '1/2016', '2/2016' ] 我的算法是 var parts1 = DateToMmDdYyyy(new Date(SortedByDate[0].Created)).split('/'), parts2 = DateTo
[ '5/2015', '6/2015', '7/2015', '8/2015', '9/2015', '10/2015', '11/2015', '12/2015', '1/2016', '2/2016' ]
我的算法是
var parts1 = DateToMmDdYyyy(new Date(SortedByDate[0].Created)).split('/'),
parts2 = DateToMmDdYyyy(new Date(SortedByDate[SortedByDate.length - 1].Created)).split('/');
var y1 = +parts1[2],
m1 = +parts1[0],
y2 = +parts2[2],
m2 = +parts2[0],
Labels = new Array();
while ( y1 <= y2 && m1 <= m2 )
{
Labels.push(y1 + '/' + m1);
if ( m1 < 12 ) { ++m1; }
else { ++y1; m1 = 1; }
}
在使用有效的y1、m1、y2和m2值运行它之后,我得到了一个空的数组标签。我哪里出了问题?有没有可能使它更加优雅、紧凑、高效、可读和正确?循环条件应该是这样的
while ( y1 < y2 || y1 == y2 && m1 <= m2 )
否则,由于m2当y1
while ( y1 < y2 || y1 == y2 && m1 <= m2 )
否则,由于m2当y1
Date.parse("0/mm/yyyy")
Date.parse将以毫秒为单位返回时间戳。现在你有了整数数组。在对时间戳数组进行排序时,对其进行排序并相应地更改值在原始数组中的位置。使用
在数组中循环。使用0/+月/年对连接
Date.parse("0/mm/yyyy")
Date.parse将以毫秒为单位返回时间戳。现在你有了整数数组。在对时间戳数组进行排序时,对其进行排序并相应地更改值在原始数组中的位置。在哪里定义了DateTommDyyy和SortedByDate?在哪里定义了DateTommDyyyy和SortedByDate?