为什么 jquery localStorage 的深拷贝不起作用?
why jquery deep copy for localStorage doesn't work?
我在 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
我在 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