javascript - 为什么 localStorage 的 jquery 深复制不起作用?

标签 javascript jquery copy deep-copy

我在 localStorage 中得到的是 [object Object] 但对于 javascript 中的其他变量它确实有效。

示例代码:

var some_hash = {
"key1":"value1",
"key2": "value2",
"key3" : [{
"key3a": "value3a"}]


}

var deep_copy = $.extend(true, {}, some_hash)
console.log(deep_copy)
Object {key1: "value1", key2: "value2", key3: Array[1]}

localStorage["help"] = $.extend(true, {}, some_hash)
console.log(localStorage["help"])
[object Object]

这是为什么呢?有什么解决办法吗?

最佳答案

localStorage 仅将值存储为字符串,而不是对象。

尝试使用 JSON.stringify 和 JSON.parse:

 var deep_copy = JSON.stringify($.extend(true, {}, some_hash));
 console.log(JSON.parse(deep_copy));

也请参见这里: Storing Objects in HTML5 localStorage

关于javascript - 为什么 localStorage 的 jquery 深复制不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30037338/

相关文章:

javascript - Jquery/Ajax 拖放文件 uploader 不提交文件

javascript - 未捕获 传递的上下文对象多于路由的动态段 : post

Jquery 验证消息显示在 jquery mobile 中的文本输入中

javascript - 在 ListView 中居中文本 Jquery Mobile

linux - Linux 中文件写入的权限由什么决定?

javascript - 如何检查 Angular 4/6 的状态变化?

javascript - 脚本在 Greasemonkey 中有效,但在 Tampermonkey 中没有任何反应?

javascript - 在页面上异步加载外部脚本是否会增加页面加载的延迟

cocoa - 将一个 UIView 的绘制内容复制到另一个 UIView

java - 当我复制两个空路径时会发生什么并且为什么它不抛出异常?