Javascript 解析localstorage对象时出现未捕获语法错误?

Javascript 解析localstorage对象时出现未捕获语法错误?,javascript,arrays,json,local-storage,Javascript,Arrays,Json,Local Storage,我正试图保存数学给出的数字。我将它们保存在数组中,然后保存到本地存储中。然后,我想在使用Math.random时附加每个新的数字数组。如果你愿意,那就容易多了 var nums=[]; 对于(变量i=0;i

我正试图保存数学给出的数字。我将它们保存在数组中,然后保存到本地存储中。然后,我想在使用Math.random时附加每个新的数字数组。如果你愿意,那就容易多了

var nums=[];
对于(变量i=0;i<5;i++){
var num=Math.floor(Math.random()*50);
nums.push(“+num”);
}
控制台日志(nums);
函数appendToStorage(名称、数据){
var old=localStorage.getItem(名称);
如果(old==null)old=“”;
setItem(名称,old+JSON.stringify(数据));
}
if(localStorage.num){
附件存储('num',nums);
}否则{
setItem(“num”,JSON.stringify(nums));
}
var nums2=localStorage.getItem(“num”);
console.log(nums2);
document.getElementById(“test”).innerHTML=JSON.parse(nums2);
但这不管用。控制台显示未捕获的语法错误:意外标记[
如果删除
getElementById
上的
JSON.parse
,则此错误将起作用。不过,我希望对其进行解析,以便更容易查看数字。如何执行此操作?

元素。innerHTML将字符串作为有效输入,而不是数组。我是否可以建议使用JSON.parse(nums)。join(“”)


使用此方法还可以不在for循环中添加前导空格,而是将空格作为第一个参数添加到Array.join方法中。如果希望每个数字都位于新行,请传递“\n”。

元素。innerHTML将字符串作为有效输入,而不是数组。我是否可以建议使用JSON.parse(nums).join(“”)


使用此方法还可以不在for循环中添加前导空格,而是将空格作为第一个参数添加到Array.join方法中。如果希望每个数字都位于新行,请传递“\n”。

元素。innerHTML将字符串作为有效输入,而不是数组。我是否可以建议使用JSON.parse(nums).join(“”)


使用此方法还可以不在for循环中添加前导空格,而是将空格作为第一个参数添加到Array.join方法中。如果希望每个数字都位于新行,请传递“\n”。

元素。innerHTML将字符串作为有效输入,而不是数组。我是否可以建议使用JSON.parse(nums).join(“”)


使用此方法还允许您不在for循环中添加前导空格,而是将空格作为第一个参数添加到Array.join方法中。如果希望每个数字位于新行,请传递“\n”.

如果您只是将一个有效的JSON字符串附加到另一个有效的JSON字符串,则不会得到有效的JSON字符串。例如:

var myJSON = '{"thing": "data"}';  // valid
myJSON = myJSON + myJSON; // myJSON is now '{"thing": "data"}{"thing": "data"}', not valid
要可靠地执行此操作,您需要解析检索到的JSON,更新结果,然后在将其存储在
localStorage
中之前再次将其字符串化

function appendToStorage(name, data) {
    var old = localStorage.getItem(name);
    if (old === null) old = "[]";
    var newData = JSON.parse(old);
    newData.push(data);
    localStorage.setItem(name, JSON.stringify(newData));
}

请注意,当您解析数组时,这将返回一个数组,当您尝试设置
innerHTML
时,这将导致出现问题。您需要首先将数组解压为某种文本格式(为此感谢).

如果您只是将一个有效的JSON字符串附加到另一个有效的JSON字符串,则不会得到有效的JSON字符串。例如:

var myJSON = '{"thing": "data"}';  // valid
myJSON = myJSON + myJSON; // myJSON is now '{"thing": "data"}{"thing": "data"}', not valid
要可靠地执行此操作,您需要解析检索到的JSON,更新结果,然后在将其存储在
localStorage
中之前再次将其字符串化

function appendToStorage(name, data) {
    var old = localStorage.getItem(name);
    if (old === null) old = "[]";
    var newData = JSON.parse(old);
    newData.push(data);
    localStorage.setItem(name, JSON.stringify(newData));
}

请注意,当您解析数组时,这将返回一个数组,当您尝试设置
innerHTML
时,这将导致出现问题。您需要首先将数组解压为某种文本格式(为此感谢).

如果您只是将一个有效的JSON字符串附加到另一个有效的JSON字符串,则不会得到有效的JSON字符串。例如:

var myJSON = '{"thing": "data"}';  // valid
myJSON = myJSON + myJSON; // myJSON is now '{"thing": "data"}{"thing": "data"}', not valid
要可靠地执行此操作,您需要解析检索到的JSON,更新结果,然后在将其存储在
localStorage
中之前再次将其字符串化

function appendToStorage(name, data) {
    var old = localStorage.getItem(name);
    if (old === null) old = "[]";
    var newData = JSON.parse(old);
    newData.push(data);
    localStorage.setItem(name, JSON.stringify(newData));
}

请注意,当您解析数组时,这将返回一个数组,当您尝试设置
innerHTML
时,这将导致出现问题。您需要首先将数组解压为某种文本格式(为此感谢).

如果您只是将一个有效的JSON字符串附加到另一个有效的JSON字符串,则不会得到有效的JSON字符串。例如:

var myJSON = '{"thing": "data"}';  // valid
myJSON = myJSON + myJSON; // myJSON is now '{"thing": "data"}{"thing": "data"}', not valid
要可靠地执行此操作,您需要解析检索到的JSON,更新结果,然后在将其存储在
localStorage
中之前再次将其字符串化

function appendToStorage(name, data) {
    var old = localStorage.getItem(name);
    if (old === null) old = "[]";
    var newData = JSON.parse(old);
    newData.push(data);
    localStorage.setItem(name, JSON.stringify(newData));
}

请注意,当您解析数组时,这将返回一个数组,当您尝试设置
innerHTML
时,这将导致出现问题。您需要首先将数组解压为某种文本格式(为此感谢).

当我尝试时,代码不会抛出任何错误,你确定本地存储中没有任何旧数据吗?它只会在控制台中抛出一个错误,所以在chrome中,你需要执行inspect元素并转到控制台…如果它不适用于你,这很奇怪。我希望下面的答案能够修复它,我还没有尝试它们。代码会当我尝试它时,不要抛出任何错误,你确定本地存储中没有任何旧数据吗?它只在控制台中抛出一个错误,所以在chrome中,你需要执行inspect元素并转到控制台…如果它不适合你,这很奇怪。我希望下面的答案能够解决它,我还没有尝试它们。代码没有抛出任何错误r当我尝试它时,你确定本地存储中没有任何旧数据吗?它只会在控制台中抛出一个错误,所以在chrome中,你需要执行inspect元素并转到控制台…如果它不适合你,这很奇怪。我希望下面的这些答案能够修复它,我还没有尝试它们。代码在我尝试时不会抛出任何错误,a你确定你的本地存储中没有任何旧数据吗?它只会在控制台中抛出一个错误,所以在chrome中你需要执行inspect元素并转到控制台…如果它不适合你,这很奇怪。我希望下面的这些答案能解决问题,我还没有尝试它们。好吧,我想我做错了什么。我更新了函数