【问题标题】:Cannot convert undefined or null to object at Function.entries (<anonymous>) [closed]无法在 Function.entries (<anonymous>) 处将 undefined 或 null 转换为对象 [关闭]
【发布时间】: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


【解决方案1】:

你能正确定义你选择的变量并再试一次吗?

chosen = JSON.parse(sessionStorage.getItem('chosen')) 应该是这样的 => const chosen = JSON.parse(sessionStorage.getItem('chosen'))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-29
    • 2020-07-19
    • 2020-12-06
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 2023-02-06
    • 2022-01-24
    相关资源
    最近更新 更多