对于获取对象 属性 标识符而不是 属性 值?
For in getting object property identifier instead of property value?
我正在尝试在 table 中显示学生对象数组的值。使用以下代码创建文本并将其分配给 table:
的单元格
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);
});
当我 运行 程序时,我得到了我想要的 table,但我得到的不是学生和分数列表,而是 table 和 属性标识符。正确的列数和行数都显示单词名称和分数。
我尝试添加不同的变体:
property.value.toString();
但它们都导致了 "is undefined" 错误。我在网上找不到关于这个主题的任何东西,我发现最接近的东西是使用 forEach 循环来获取属性,这甚至是不可能的。是否有某种我不知道的语法形式需要添加才能读取每个 属性 的实际值?还是我需要完全使用不同类型的循环?
您需要显示 属性 值而不仅仅是 属性 正确。
替换
cell.textContent = property.toString();
和
cell.textContent = student[property].toString();
或者干脆
cell.textContent = student[property];
我正在尝试在 table 中显示学生对象数组的值。使用以下代码创建文本并将其分配给 table:
的单元格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);
});
当我 运行 程序时,我得到了我想要的 table,但我得到的不是学生和分数列表,而是 table 和 属性标识符。正确的列数和行数都显示单词名称和分数。
我尝试添加不同的变体:
property.value.toString();
但它们都导致了 "is undefined" 错误。我在网上找不到关于这个主题的任何东西,我发现最接近的东西是使用 forEach 循环来获取属性,这甚至是不可能的。是否有某种我不知道的语法形式需要添加才能读取每个 属性 的实际值?还是我需要完全使用不同类型的循环?
您需要显示 属性 值而不仅仅是 属性 正确。
替换
cell.textContent = property.toString();
和
cell.textContent = student[property].toString();
或者干脆
cell.textContent = student[property];