如何在localStorage中增加值

San*_*eph 4 html javascript html5 local-storage

我有一些动态存储在localStorage的值,增量值如下:localStorage ["Value0"],localStorage ["Value1"],....

当我尝试像这样访问它们时:

JavaScript的:

localStorage["Counter"]=0;
var i = localStorage["Counter"]; 
var d =localStorage["Value"+i];
i = i + 1; // i becomes "01"
var f = localStorage["Value"+i];
Run Code Online (Sandbox Code Playgroud)

i的值是"01"而不是1 ...有没有办法正确增加i的值?

Wer*_*eta 15

LocalStorage只能存储字符串值.您可以使用将字符串转换为整数的parseInt:

var new_value =  parseInt(localStorage.getItem('num')) + 1
Run Code Online (Sandbox Code Playgroud)

您还可以使用store.js等库来自动执行操作.您所要做的就是包括库:

<script src="store.js"></script>
Run Code Online (Sandbox Code Playgroud)

设置新存储:

var numbers = new Store("numbers")
Run Code Online (Sandbox Code Playgroud)

把东西放进去:

numbers.set('num', 2)
Run Code Online (Sandbox Code Playgroud)

获得价值并随心所欲地做任何事情:

numbers.get('num') + 1 //output: 3
Run Code Online (Sandbox Code Playgroud)

你也可以发疯并使用一些数组:

numbers.set('nums', [1,2,3])
Run Code Online (Sandbox Code Playgroud)

并改变其中的内容:

numbers.get('nums')[0] + 3 //output: 4
Run Code Online (Sandbox Code Playgroud)

无需转换类型.您还可以存储对象,布尔值和其他内容.只是不要忘记将内容保存在存储中,因为它不会自动执行此操作.