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