对于在对象中查找值时的循环计数器

时间:2013-10-22 17:51:27

标签: javascript jquery html

我有这个函数,它根据对象的值创建一个表。

function buildTable (){
    //build header
    var header = "<tr><th>USERS</th>"
    for(var i=0; i<groups.length; i++){
        header += "<th>"+groups[i]+"</th>";
    }
    header += "</tr>";

    $("#taxonomy thead").append($(header));
    //build table body
    for(var user in userGroupTable){
        var i = 0; i++;
        var row ="<tr><td>" + usersName[i] + "</td>";
        for(var i=0; i<groups.length; i++){
            var groupName = groups[i];
            var $td = "<td>"+userGroupTable[user][groupName]+"</td>";
            row +=$td;
        }
        row += "</tr>";
        //append the data to the table
        $("#taxonomy tbody").append($(row));

    }
}

我正在尝试在usersName数组中的值之间进行迭代,但是在每个循环中设置var i得到的重置为0的方式,所以同名不断出现。我不熟悉for(数组中的var x),如果在这里有某种计数器我可以用来迭代我的数组?或者我应该设置一个全局变量?

很抱歉,如果标题很差。

2 个答案:

答案 0 :(得分:1)

您正在使用var i两次。将一个更改为更有意义的变量名称,例如userIndex

答案 1 :(得分:1)

在for循环之前初始化i,在for循环中初始化i为0, 将其改为我以外的其他人

function buildTable (){
    //build header
    var header = "<tr><th>USERS</th>"
    for(var i=0; i<groups.length; i++){
        header += "<th>"+groups[i]+"</th>";
    }
    header += "</tr>";

    $("#taxonomy thead").append($(header));
    //build table body
        var i = 0;
    for(var user in userGroupTable){
      i++;
        var row ="<tr><td>" + usersName[i] + "</td>";
        for(var j=0; j<groups.length; j++){
            var groupName = groups[j];
            var $td = "<td>"+userGroupTable[user][groupName]+"</td>";
            row +=$td;
        }
        row += "</tr>";
        //append the data to the table
        $("#taxonomy tbody").append($(row));

    }
}