Javascript 我的算法在构造一个月-年-日期的排序数组时有什么缺陷?

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

我想要的是:

给定两个月-一年对,如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 = 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=2015,m1=6, y2=2016,m2=2, 标签=[];
当y1
while ( y1 < y2 || y1 == y2 && m1 <= m2 )
否则,由于m2 风险值y1=2015,m1=6, y2=2016,m2=2, 标签=[];
当y1 在数组中循环。使用0/+月/年对连接

Date.parse("0/mm/yyyy")
Date.parse将以毫秒为单位返回时间戳。现在你有了整数数组。在对时间戳数组进行排序时,对其进行排序并相应地更改值在原始数组中的位置。

使用

在数组中循环。使用0/+月/年对连接

Date.parse("0/mm/yyyy")
Date.parse将以毫秒为单位返回时间戳。现在你有了整数数组。在对时间戳数组进行排序时,对其进行排序并相应地更改值在原始数组中的位置。

在哪里定义了DateTommDyyy和SortedByDate?在哪里定义了DateTommDyyyy和SortedByDate?