我有这个函数,它根据对象的值创建一个表。
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),如果在这里有某种计数器我可以用来迭代我的数组?或者我应该设置一个全局变量?
很抱歉,如果标题很差。
答案 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));
}
}