我正在创建一个javascript函数来为当前月份的日历(<table>
)构建html。该函数的一个参数是是否写出一周中的几天或使用它们的首字母。全名和首字母都包含在数组中。该函数将循环遍历其中一个数组,以构建包含一周中几天的表格单元格。选择哪个数组循环的最佳方法是什么?或者我应该以完全不同的方式构建此代码?
代码来说明我的问题:
buildCalendar(useFullNames){
var fullNames = ['Sunday', 'Monday'], // etc.
initials = ['S', 'M'],
calString = '<tr>';
if(useFullNames) {
// use fullNames array in the loop
}
else {
// use initials array in loop
}
for(i=0; i<7; i++)
{
// Need to loop over the array picked above
calString += '<td>' + relevantArray[i] + '</td>';
}
calString += '</tr>';
}
答案 0 :(得分:3)
var relevantArray = useFullNames ? fullNames : initials;
答案 1 :(得分:2)
这样的事情(伪代码):
buildCalendar(dayOfWeekFormat){ //dayOfWeekFormat: "fullNames or "initials"
var dayOfWeekFormat = {
fullNames: ['Sunday', ..., 'Saturday'],
initials: ['S', ..., 'Sat']
}
var calString = '<tr>';
for(i=0; i<7; i++)
{
// Need to loop over the array picked above
calString += '<td>' + daysOfWeek[dayOfWeekFormat][i] + '</td>';
}
calString += '</tr>';
}
relevantArray
是一个糟糕的变量名称。它没有告诉你任何内容。
答案 2 :(得分:1)
好吧,就像你设置它一样,设置relevantArray
变量
buildCalendar(useFullNames){
var fullNames = ['Sunday', 'Monday'], // etc.
initials = ['S', 'M'],
calString = '<tr>',
relevantArray;
if(useFullNames) {
// use fullNames array in the loop
relevantArray = fullNames;
}
else {
// use initials array in loop
relevantArray = initials;
}
for(i=0; i<7; i++)
{
// Need to loop over the array picked above
calString += '<td>' + relevantArray[i] + '</td>';
}
calString += '</tr>';
}