gpt4 book ai didi

javascript - 我收到错误 : Cannot read property 'push' of null

转载 作者:行者123 更新时间:2023-11-28 17:40:38 25 4
gpt4 key购买 nike

我尝试过 this reference ,但无论如何都不起作用。

这对我来说是一个新事物,我刚刚开始学习 javascript。

var getTbl = localStorage.getItem("tableList");
var resultTable = [];
if (getTbl !== undefined && getTbl !== '') {
resultTable = JSON.parse(getTbl);
}
let newtableHTML = addTable;
resultTable.push({
table: newtableHTML
});
// save the new resultFolder array
localStorage.setItem("tableList", JSON.stringify(resultTable));

我尝试了这样的事情,但没有运气:

var resultTable = resultTable || [];

抱歉,如果我的尝试是错误的。

最佳答案

线路

resultTable = JSON.parse(getTbl);

JSON.parse 返回的内容替换 resultTable 变量的内容。显然 JSON.parse 没有返回数组(或具有 push 方法的其他类型的对象,但数组是唯一可以这样做的内置对象)。

我的猜测是它返回 null,因为如果本地存储中不存在该 key ,getItem 将返回 null,但您'我们没有检查这一点。因此,您将 null 传递到 JSON.parse 中,它会被强制转换为字符串 ("null"),然后解析为 JSON,产生...

由于您要存储一个数组(并且数组永远不会是假的),我可能会这样做:

var getTbl = localStorage.getItem("tableList");
var resultTable = getTbl ? JSON.parse(getTbl) : []; // <====
let newtableHTML = addTable;
resultTable.push({
table: newtableHTML
});
// save the new resultFolder array
localStorage.setItem("tableList", JSON.stringify(resultTable));

它测试 getItem 给我们的内容是否为假,如果是,则使用 [] 代替。

但是这个主题有十几种变体。例如:

var resultTable = JSON.parse(localStorage.getItem("tableList") || "[]"); // <===
let newtableHTML = addTable;
resultTable.push({
table: newtableHTML
});
// save the new resultFolder array
localStorage.setItem("tableList", JSON.stringify(resultTable));

关于javascript - 我收到错误 : Cannot read property 'push' of null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48034983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com