gpt4 book ai didi

javascript - 使用循环和 localStorage 保存所有变量 [JavaScript]

转载 作者:行者123 更新时间:2023-12-03 06:19:02 24 4
gpt4 key购买 nike

我想编写一个可以轻松保存所有变量的代码。通常我需要 60 个变量,大约 120 行。效率不太高。我决定尝试用数组创建一个函数来尝试保存所有变量。好像不行。

我的问题是加载的变量是字符串,但我需要它们是 float 。

var variablelist = ["numb1","numb2","numb3","numb4","numb5"];
var variablelength = variablelist.length;

function save(){
for (var i = 0; i < variablelength; i++){
localStorage[variablelist[i]] = window[variablelist[i]];
}
}

function load(){
for (var i = 0; i < variablelength; i++){
window[variablelist[i]] = localStorage[variablelist[i]];
}
}

我已经尝试过

window[variablelist[i]] = localStorage[parseFloat(variablelist[i])];

没有任何效果。它仍然是一个字符串。有什么想法吗?

最佳答案

首先,看到如此之多的东西存储在 window 对象上,让我很伤心。你真的应该重新考虑一下!

LocalStorage是一种将键值对存储到浏览器内存以供以后访问的方法。唯一的问题是该值必须是字符串。

您可以使用 JSON.stringifyJSON.parse 函数来解决这个问题:

var objectToSave = {
key1: 'something',
key2: 'something else'
};

localStorage.setItem('myObject', JSON.stringify(objectToSave));

console.log(localStorage.getItem('myObject')); // What is stored
console.log(JSON.parse(localStorage.getItem('myObject'))); // The parsed object

否则,如果您设置保存所有单个变量,那么您就离目标不远了,您只需要使用 getItemsetItem:

var variablelist = ["numb1","numb2","numb3","numb4","numb5"];
var variablelength = variablelist.length;

function save(){
for (var i = 0; i < variablelength; i++){
localStorage.setItem(variablelist[i], window[variablelist[i]]);
}
}

function load(){
for (var i = 0; i < variablelength; i++){
window[variablelist[i]] = localStorage.getItem(variablelist[i]);
}
}

关于javascript - 使用循环和 localStorage 保存所有变量 [JavaScript],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38953159/

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