<script>
draw = "<div><table><tbody>"
recv = {"张三": ["89", "63", "78", "77"], "李四": ["99", "75", "98", "97"]}
obj =JSON.parse(recv)
for (i in obj){
draw += "<tr>" + "<td>" + vdata[i][0] + "</td>" + "<td>" + vdata[i][1] + "</td>" + "<td>" + vdata[i][2] + "</td>" + "</tr>";
}
draw += "</tbody></table></div>"
</script>
<body>
document.write(draw)
</body>
想通过服务器返回的JSON数据,遍历后得到一个表格。但是这个循环得到的结果不正确,想问问是什么地方出错了?
该回答引用ChatGPT
这段代码存在一些问题:
JSON.parse 函数的参数必须是字符串,但是你传入的是一个对象,所以会抛出错误。
在 for 循环中,每一次遍历的键名(即 "张三" 和 "李四")存在一个变量 i 中,而不是 vdata 中,所以应该是 obj[i] 而不是 vdata[i]。
在拼接 HTML 代码时,存在一些缺少的标签,比如 和 。
修改后的代码如下:
draw = "<div><table><tbody>";
recv = '{"张三": ["89", "63", "78", "77"], "李四": ["99", "75", "98", "97"]}';
obj = JSON.parse(recv);
for (i in obj){
draw += "<tr><td>" + i + "</td><td>" + obj[i][0] + "</td><td>" + obj[i][1] + "</td><td>" + obj[i][2] + "</td></tr>";
}
draw += "</tbody></table></div>";
document.write(draw);
这段代码应该能够正确输出遍历后的表格了。
——我路胜能有今日境界,全是我天赋异禀….…chatgpt,全部加满!
该回答引用ChatGPT
1、将 recv 解析为对象:您使用了 JSON.parse 方法,但 recv 变量是一个 JavaScript 对象,不需要再解析。
2、遍历对象:您使用了 for (i in obj) 来遍历对象,但是应该使用 for (let i in obj)。
3、变量名错误:在循环内部,您使用了 vdata[i][0],但是应该是 obj[i][0]。
4、缺少单元格标签:在拼接字符串的过程中,您缺少了 和 标签,导致生成的 HTML 不完整。
<script>
let draw = "<div><table><tbody>"
let recv = {"张三": ["89", "63", "78", "77"], "李四": ["99", "75", "98", "97"]}
for (let i in recv){
draw += "<tr><td>" + recv[i][0] + "</td><td>" + recv[i][1] + "</td><td>" + recv[i][2] + "</td></tr>";
}
draw += "</tbody></table></div>"
</script>
<body>
document.write(draw)
</body>
不知道你这个问题是否已经解决, 如果还没有解决的话: