Javascript - Array - 将值从一个数组分配给另一个数组中的字符串

时间:2017-03-02 15:26:28

标签: javascript arrays function

希望标题有点清楚......不知道如何更具体。

这是我的问题: 我有几个不同的变量应该从一个Html页面传递到localstorage。 在一个(多个)页面中,我可以(使用clickevents)更改值,这些值应该在之后保存并在下一页上加载。如果除了起始值“0”之外没有其他值,则应保存值0,因此var不会被定义。 从技术上讲,localstorage正在使用函数中的以下代码:document.addEventListener('DOMContentLoaded', function():

var XXX;
if (localStorage.XXX> 0){
    XXX= Number(localStorage.XXX);
} else {
    XXX = 0;
}
document.getElementById("XXX").innerText = XXX;

这整个代码很可能不是你见过的最漂亮的东西,但它正在发挥作用。由于我有几个变量越来越多,我认为将每个变量的所有复制/粘贴代码都放入函数中会很好...我尝试了很多东西,但没有任何工作,我甚至都没有它在ctrl + Shift + I的帮助下......这就是我的尝试:

var resource = ["XXX", "YYY", "ZZZ"];
var localStorageResource = [localStorage.XXX, localStorage.YYY, localStorage.ZZZ];
function getLocalStorage() {
    for (var i = 0; i < resource.length; i++){
        if (localStorageResource[i] > 0){
            resource[i] = Number(localStorageResource[i]);
        } else {
            resource[i] = 0;
        }
        document.getElementById("resource[i]").innerText = resource[i];

正如您所看到的,代码并没有真正不同,我只是将变量及其各自的localstorage值放入两个不同的数组中。 我无法理解为什么变量XXX会被实际值覆盖,而不是被分配给变量的值...这在“非灵活”解决方案中正常工作。

只是为了给你背景: 这一切都是关于在一个页面或另一个页面上收集资源(不同位置上的不同资源),并在其他html页面上将所有这些信息带到这些资源上做些什么...... 现在我使用vanilla Javascript除了easelJS以外的一些画布东西

我非常感谢你的建议,并希望从你的答案中学到很多东西。

提前致谢!

1 个答案:

答案 0 :(得分:0)

最好尝试使用对象并迭代键(作为示例的变量名称)

var resource = {"XXX": 0, "YYY": 0, "ZZZ": 0};

function getLocalStorage() {
    for (var i in resource){ //Variable "i" will be "XXX", "YYY" and "ZZZ" strings in each iteration
        resource[i] = localStorage.getItem(i) || 0; //In the first iteration will assign localStorage.getItem("XXX") to resource.XXX, and so on...
        document.getElementById(i).innerText = resource[i]; //In the first iteration will get element by id="XXX" and assign the value of resource.XXX, and so on...
    }
}