如何检索存储在本地存储中的所有数组值

时间:2016-06-01 16:26:35

标签: html5 local-storage

我已将数组存储在本地存储中。当我访问同一个函数中的所有值时,我得到所有的值但是当我尝试在函数外部访问它时,我只得到最后一个推送的值。如何检索函数外的所有值?

storeGrabID(10);
storeGrabID(7);
storeGrabID(9);
storeGrabID(4);
//storing function
function storeGrabID(id)
{
    var list = new Array(); 
    list.push(id);
    localStorage.setItem('offerID',JSON.stringify(list));
    console.log(localStorage.getItem('offerID'));//getting all the values
}
console.log(localStorage.getItem('offerID'));//getting the last pushed value i.e. 4

1 个答案:

答案 0 :(得分:0)

这是正常的,因为每次调用storeGrabID都会创建另一个列表新数组,您可以在其中添加参数传递的元素。

每次只存储一个元素(最后一个),并且在您存储在本地存储中的函数中使用此元素。

解决您问题的两种解决方案: 1)每次调用函数时从本地存储中获取数组* 优点:运行安全 不方便的是,无需从本地存储中加载

,即可显示阵列中的内容
storeGrabID(10);
storeGrabID(7);
storeGrabID(9);
storeGrabID(4);
//storing function
function storeGrabID(id)
{
    var list = localStorage.getItem('offerID');
    list.push(id);
    localStorage.setItem('offerID',JSON.stringify(list));
    console.log(localStorage.getItem('offerID'));//getting all the values
}

2)另一种方式但不太合适的是将列表放在数组之外 优点:快速实施 不方便:不太合适(全局变量)

var list = new Array(); 
storeGrabID(10);
storeGrabID(7);
storeGrabID(9);
storeGrabID(4);
//storing function
function storeGrabID(id)
{
    list.push(id);
    localStorage.setItem('offerID',JSON.stringify(list));
    console.log(localStorage.getItem('offerID'));//getting all the values
}
console.log(localStorage.getItem('offerID'));//getting the last pushed value i.e