已经声明长度的数组,长度还可以变 吗?
function fBuildCal(iYear, iMonth){
var aMonth = new Array();
for (var i = 1; i < 7; i++) {
aMonth[i] = new Array(i);
}
var dCalDate = new Date(iYear, iMonth - 1, 1);
var iDayOfFirst = dCalDate.getDay();
var iDaysInMonth = new Date(iYear, iMonth, 0).getDate();
var iOffsetLast = new Date(iYear, iMonth - 1, 0).getDate() - iDayOfFirst + 1;
var iDate = 1;
var iNext = 1;
for (var d = 0; d < 7; d++) {
aMonth[1][d] = (d < iDayOfFirst) ? (iOffsetLast + d) * (-1) : iDate++;
}
for (var w = 2; w < 7; w++) {
for (var d = 0; d < 7; d++) {
aMonth[w][d] = (iDate <= iDaysInMonth) ? iDate++ : (iNext++) * (-1);
}
}
return aMonth;
}
这个.js里面第一个循环for里面aMonth是一个二维数组,aMonth[0]长度是1,aMonth[1]长度是2……以此类推。但是为什么后面的for里面能够给aMonth[1]赋7个长度的值呢?(aMonth[1][d] = (d < iDayOfFirst) ? (iOffsetLast + d) * (-1) : iDate++;)
已经声明长度的数组,长度还可以变 吗
------解决方案--------------------
JS数组的长度是可用变的
http://www.cnblogs.com/aleaf/archive/2009/10/23/1588446.html