为什么我的变量在JavaScript中保存到我的数组?

时间:2015-01-28 20:57:54

标签: javascript arrays

您好我有一段代码检查数组的值,如果在数组中找不到该值,则将该值添加到另一个数组(称为soldListingArray)。然后它将soldListingArray保存到localStorage(使用localStorage.setItem("array", soldListingArray)。出于某种原因,在我的console中,我可以看到变量是正确的,在将其添加到数组之后,但在我调用整个数组时代码之外,它表示它是空的。

array1是我正在检查array2数组内的所有值的数组。

这是我的代码:

    function checkToSeeIfListingIsSold() {

    var soldListingArray = localStorage.getItem("array");

    var x = 0;
    var y = array1.length;

    do {

        var index = array1[x];

        if (array2.indexOf(index) == -1) {

            // Here I add the variable to my soldListingArray

            soldListingArray[soldListingArray.length] = index;

            // Here my console says what has been added to the soldListingArray (the value is correct).

            console.value += index + " has been added to soldListingArray;\n";
            }

         x++;

        } while (x < y)

   localStorage.setItem("array", soldListingArray);

   // Here I ask my console to display my soldListingArray but I get an empty array back.

   console.value += "Sold Array: " + soldListingArray;

   }

为什么index变量未添加并保存到我的soldListingArray

任何帮助表示赞赏!提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果要使用本地存储,则需要将数组转换为字符串:

localStorage.setItem("array",JSON.stringify(soldListingArray))

然后,当您需要稍后访问它并添加项目时,将其转换回数组:

soldListingArray = JSON.parse(localStorage.getItem("array"));

之前已经回答过;一点点的研究将会有很长的路要走: Storing Objects in HTML5 localStorage