localstorage - 保存数组

时间:2014-04-10 15:04:32

标签: javascript html local-storage

我有localstorage工作到我可以保存输入的位置并将它们推送到列表中。现在我想将列表保存在localstorage中,因为当我重新加载列表时,由于var fav = new Array();的{​​{1}}在此jsFiddle的开头定义了重置。我该如何解决这个问题?

谢谢, 本

4 个答案:

答案 0 :(得分:6)

非常简单,您只需要使用JSON数据来保存它:

// Save
var datas = ["1", "2", "3"];
localStorage["datas"] = JSON.stringify(datas);

// Retrieve
var stored_datas = JSON.parse(localStorage["datas"]);

答案 1 :(得分:1)

有些人得到 undefined 的原因是因为 JS.. 例如,如果您运行 [][0],它是 undefined。上面来自安迪/亚瑟的答案最初为我在本地工作,但最终中断了生产。我通过使用方法/语法 defined in the MDN docs 修复它,使用它...

设置一个值:

const myArray = []
localStorage.setItem('myArray', JSON.stringify(myArray))

获取值:

const myArrayFromLocalStorage = localStorage.getItem('myArray')
if (myArrayFromLocalStorage && myArrayFromLocalStorage.length) {
const myArray = JSON.parse(myArrayFromLocalStorage)
}

清除一个值:

localStorage.removeItem('myArray')

答案 2 :(得分:0)

这对localDataStorage很简单,您可以透明地设置/获取以下任何"类型":数组,布尔值,日期,浮点数,整数,空值,对象或字符串

[免责声明]我是该实用程序的作者[/ DISCLAIMER]

示例:

localDataStorage.set( 'key1', 'Belgian' );
localDataStorage.set( 'key2', 1200.0047 );
localDataStorage.set( 'key3', true );
localDataStorage.set( 'key4', { 'RSK' : [1,'3',5,'7',9] } );
localDataStorage.set( 'key5', null );

localDataStorage.get( 'key1' );   -->   'Belgian'
localDataStorage.get( 'key2' );   -->   1200.0047
localDataStorage.get( 'key3' );   -->   true
localDataStorage.get( 'key4' );   -->   Object {RSK: Array(5)}
localDataStorage.get( 'key5' );   -->   null

如您所见,原始值得到尊重。在你的情况下,我们会这样做:

>localDataStorage.set( 'datas', ["1", "2", "3"] );

请注意,我们不需要对键值进行任何字符串化。您可以清楚明确地指定它。现在,当我们检索它时......

>localDataStorage.get( 'datas' ) -->

......我们会得到:

>(3) ["1", "2", "3"] 

正是我们开始使用的,无需转换任何内容。

答案 3 :(得分:-1)

如果你想阻止你的变量被重置,试试这个,如果你想重新加载页面并保留旧值,这对你来说是没有用的。

  if (typeof fav === 'undefined'){
        var fav = new Array();}