选择要循环的数组

时间:2012-09-14 03:49:35

标签: javascript html arrays loops

我正在创建一个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>';
}

3 个答案:

答案 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>';
}