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

For Loop counter when looking for value in object

本文关键字:于循环 循环 计数器 对象 查找      更新时间:2023-09-26

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

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 中),如果其中有某种计数器可以用来迭代我的数组?还是我应该只设置一个全局变量?

对不起,如果标题很差。

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

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