用于获取对象属性标识符而不是属性值?

时间:2016-03-14 06:04:06

标签: javascript object properties for-in-loop

我正在尝试在表格中显示学生对象数组的值。使用以下代码创建文本并将其分配给表格的单元格:

var tableBody = document.createElement('tableBody');
                table.appendChild(tableBody);
                body.appendChild(table);
                students.forEach(function(student) {
                    var row = document.createElement('tr');
                    for(var property in student) {
                        var cell = document.createElement('td');
                        cell.textContent = property.toString();
                        row.appendChild(cell);
                    };
                    tableBody.appendChild(row);
                });

当我运行程序时,我得到了一张我想要的表,但是我得到一个带有属性标识符的表,而不是学生和分数列表。正确的列数和行数都显示单词名称和分数。

我尝试添加不同的变体:

property.value.toString();

但是他们都导致了“未定义”错误。我在网上找不到任何关于这个主题的东西,我发现最接近使用forEach循环获取属性的东西,这是不可能的。是否有某些形式的语法我不知道我需要添加以便读取每个属性的实际值?或者我需要完全使用不同类型的循环吗?

1 个答案:

答案 0 :(得分:1)

您需要显示属性值,而不仅仅是属性权限。

替换

cell.textContent = property.toString();

cell.textContent = student[property].toString();

或只是

cell.textContent = student[property];