Javascript 在更复杂的场景中合并本地存储(保存多个阵列)

Javascript 在更复杂的场景中合并本地存储(保存多个阵列),javascript,arrays,local-storage,Javascript,Arrays,Local Storage,我正在尝试在我的程序中实现本地存储 最初,程序很简单,只需保存一个数组。该数组用作容器,然后将容器馈送到#1-显示输出和#2-控制台输出 上面的链接最终起作用了——正如您在JS的第54行所看到的,一旦在输入框中输入了一个新条目,更新后的容器就会保存到localStorage。然后在返回站点时,根据第11行-如果在程序初始加载时保存的localStorage容器与初始数组不匹配,则使用保存的容器 然而,我已经彻底改变了程序,因此现在有多个选项可供选择,因此有多个阵列。无论选择哪个选项/数组,都将

我正在尝试在我的程序中实现本地存储

最初,程序很简单,只需保存一个数组。该数组用作容器,然后将容器馈送到#1-显示输出和#2-控制台输出

上面的链接最终起作用了——正如您在JS的第54行所看到的,一旦在输入框中输入了一个新条目,更新后的容器就会保存到localStorage。然后在返回站点时,根据第11行-如果在程序初始加载时保存的localStorage容器与初始数组不匹配,则使用保存的容器

然而,我已经彻底改变了程序,因此现在有多个选项可供选择,因此有多个阵列。无论选择哪个选项/数组,都将成为主容器,并且主容器仍然会输出到显示输出和控制台输出。请参阅下面更新的程序

问题是,我现在很难弄清楚如何在这个新更新的程序上实现本地存储。以前,当我只需要测试1个数组时,这要容易得多。现在,我不能在输入(或删除)新条目时保存容器,因为容器可以是6个选项中的任意一个

有人对我能做什么有什么一般性的想法/建议/建议吗

最简单(可能不是最有效)的选择是使用数组数组。如果您之前有:

var container = ["a", "b", "c"];
localStorage.setItem("container", JSON.stringify(container));
您现在可以:

var container = [
   ["a", "b", "c"],
   ["d", "e", "f"]
];
localStorage.setItem("container", JSON.stringify(container));
然后,要在新代码中获得单个代码,您只需执行以下操作:

var container = JSON.parse(localStorage.getItem('container'));  //The same as before
var firstItem = container[0];

希望这有帮助。干杯

为什么不创建一个包含多个数组的JSON对象,并将整个字符串化对象保存在localStorage变量中,而不是保存在一维数组中呢。它甚至可以有一个引用所选容器的参数,其结构如下:

var containers = {
    selectedContainer: "container1",
    container1: ["text","contents","of","container1"],
    container2: ["text","contents","of","container2"],
    container3: ["text","contents","of","container3"],
    container4: ["text","contents","of","container4"],
    container5: ["text","contents","of","container5"],
    container6: ["text","contents","of","container6"]
}
然后,可以将内容推送并弹出到每个容器阵列,并将整个对象保存在单个localStorage变量中:

containers.container1.push("additional contents"); 
localStorage['containers'] = JSON.stringify(containers);

obj = JSON.parse(localStorage['containers']);
然后,可以使用selectedContainer参数引用所选阵列:

var container = (obj[obj.selectedContainer])

嘿@Edgar Villegas Alvarado谢谢你的帮助。我试图实现你们的帮助,但我要么真的很遥远,要么真的很接近(可能真的很遥远)。这就是我的观点,任何关于我搞砸了什么的建议?我认为你的答案是genius@Paul Geronica,然而,试图实现你答案的人。。。没有那么多。哈哈。有没有想过我可能做错了什么???我认为我在实现您的建议方面做得很好,但是现在控制台或主显示器中都没有显示任何内容-我不确定是否正确加载了本地存储或保存了不正确的内容,或者只是语法不正确。。。非常感谢您的帮助,谢谢!
containers.container1.push("additional contents"); 
localStorage['containers'] = JSON.stringify(containers);

obj = JSON.parse(localStorage['containers']);
var container = (obj[obj.selectedContainer])