1

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

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 的方式在每个循环中都会重置为 0,因此相同的名称会不断出现。我不熟悉 for(var x in array),如果其中有某种计数器可以用来遍历我的数组?还是我应该只设置一个全局变量?

如果标题不好,请见谅。

4

2 回答 2

1

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

于 2013-10-22T17:54:58.047 回答
1

在 for 循环之前初始化 i,在 for 循环内用 0 初始化 i,将其更改为 i 以外

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));

    }
}
于 2013-10-22T17:56:00.060 回答