0

我正在创建一个 javascript 函数来<table>为当前月份的日历(在 a 中)构建 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>';
}
4

3 回答 3

3
var relevantArray = useFullNames ? fullNames : initials;
于 2012-09-14T03:52:22.693 回答
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是一个糟糕的变量名。它不会告诉你任何关于它的内容。

于 2012-09-14T04:00:43.073 回答
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>';
}
于 2012-09-14T03:52:19.113 回答