【发布时间】:2022-01-04 16:05:52
【问题描述】:
我正在尝试从一个页面上的控制台提取数据,用 json 编写,然后使用此脚本将其传输到另一个页面,但我遇到了问题。 帮助解决问题)
JS代码
chosen = JSON.parse(sessionStorage.getItem('chosen'))
console.log(chosen)
let s = "";
let sum = 0.0;
for (let [key, value] of Object.entries(chosen)) {
s += `<p>${key} (${value['value']}): \u20ac ${value['price']}</p>`
sum += parseFloat(value['price'])
}
s += `<p>Total: ${sum}</p>`
document.getElementById("components").innerHTML += s;
错误
order.js:6 Uncaught TypeError: Cannot convert undefined or null to object
at Function.entries (<anonymous>)
at order.js:6
【问题讨论】:
-
console.log(chosen)输出什么? -
这就是控制台输出的内容,但会产生错误吗?你确定?
-
我看到你没有正确定义选择。那是什么变量?常量还是让?从解决这个问题开始。或者,您是否忘记在问题中添加它?
-
假设
chosen是之前定义的,那么代码确实会产生错误,但不会产生您声称的错误 - 演示:jsfiddle.net/h9z3p87k。而且,您确定要从已存储数据的同一会话中检索数据吗?在尝试解析存储值之前写一行检查存储值是否存在是明智的。 -
即使我们修复了所有的语法问题,它仍然没有多大意义。我猜这更像是您的目标:jsfiddle.net/h9z3p87k/1。这会输出你所期望的吗?您提供的示例数据似乎与代码不太匹配。
标签: javascript html