我有一个具有以下结构的 JSON:
diferencias = {
"1": {
"1": 543.0,
"0": 542.0
},
"2": {
"0 1": 0.3333333333333333
}
}
我需要获取一个以外键作为列的表。
我编写了以下代码:
$("#pinchetabla").empty()
var tr = ""
for (d in diferencias) {
var r = ''
for (dd in d) {
//console.log(dd)
r += '<tr>' + 'f[' + diferencias.dd + ']=' + diferencias.d.dd + '</tr>'
}
tr += r
}
var table = "<table id='resultados' class='table table-condensed'>" + tr + "</table>"
$("#pinchetabla").append(table)
我关注了jsfiddle
其中pinchetabla
是一个div
。但是我什至无法正确访问 JSON 键和值。我错过了什么?
最佳答案
当您使用 dot notation 访问属性时,像这样object.propertyname
,JavaScript 将查找 propertyname
在 object
。在你的情况下,d
和dd
只是 object
中的键,但 JavaScript 会在 diferencias
中寻找它们但没能找到它们。
为了动态访问属性,您必须使用 subscript/bracket notation ,像这样
r += '<tr>' + 'f[' + d + ']=' + diferencias[d][dd] + '</tr>';
for循环也应该是这样的
for (dd in diferencias[d]) {
您的表创建代码可以这样修复
var tr = "";
for (d in diferencias) {
var r = '<tr>';
for (dd in diferencias[d]) {
r += '<td>' + 'f[' + d + ']=' + diferencias[d][dd] + '</td>';
}
tr += r + '</tr>';
}
关于javascript - 如何在 JavaScript 中迭代 JSON 对象并用它创建表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22484091/