简体   繁体   English

在变量中存储并设置所有本地存储

[英]Store and set all localstorage in variable

I need to save all domain localStorage in variable and later set it again from variable. 我需要将所有域localStorage保存在变量中,然后再从变量中再次进行设置。

I trying save localstorage with this code: 我尝试使用以下代码保存本地存储:

for (var i = 0, len = localStorage.length; i < len; ++i) {
 objects = JSON.stringify(localStorage.getItem(localStorage.key(i)));
}
console.log(objects);

But it gives me a error. 但这给了我一个错误。 And how can i set all localstorage from variable? 又如何从变量设置所有本地存储? Something like this? 像这样吗

for (var i = 0, len = objects.length; i < len; i++) {
      localStorage.setItem(len, objects(i);
}

You could do something like this to set the items: 您可以执行以下操作来设置项目:

function setItem(key, value){
    if (typeof value === 'object') {
        value = JSON.stringify(value);
    }
    localStorage.setItem(key, value);
}

and something like this to retrieve it: 和类似这样的东西来检索它:

function getItem(key){
    if (key){
        try{
            return JSON.parse(localStorage.getItem(key));
        }
        catch(e){
            return localStorage.getItem(key);
        }
    }
}

localStorage only save strings, numbers or booleans so if your value is an object you need to stringify it before save it, then when you retrieve it you need to parse it again to an object. localStorage仅保存字符串,数字或布尔值,因此,如果您的值是一个对象,则需要先对其进行字符串化处理再保存,然后在检索它时,需要再次将其解析为一个对象。

Now take this 2 functions and use them like wrappers to access the localStorage values in your loops. 现在使用这2个函数,并像包装器一样使用它们来访问循环中的localStorage值。

[Update - Fixing Loops] [更新-修复循环]

Get Data 获取数据

var objects = {};
for (var i = 0, len = localStorage.length; i < len; i++) {
  objects[localStorage.key(i)] = getItem(localStorage.key(i));
}
console.log(objects);

Set Data 设定资料

for (var o in objects) {
   setItem(o, objects[o]);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM