Cómo incrementar un valor en localStorage

Tengo algunos valores que se almacenan dinámicamente en localStorage con valores incrementales como este: localStorage [“Value0”], localStorage [“Value1”], ….

Cuando bash acceder a ellos de esta manera:

JavaScript:

localStorage["Counter"]=0; var i = localStorage["Counter"]; var d =localStorage["Value"+i]; i = i + 1; // i becomes "01" var f = localStorage["Value"+i]; 

El valor de i es “01”, no 1 … ¿Hay alguna manera de incrementar el valor de i correctamente?

LocalStorage solo puede almacenar valores de cadena. Puede usar parseInt, que convierte una cadena en un entero:

 var new_value = parseInt(localStorage.getItem('num')) + 1 

También puede usar bibliotecas como store.js para hacer cosas automáticamente por usted. Todo lo que tienes que hacer es incluir la biblioteca:

  

Establecer un nuevo almacenamiento:

 var numbers = new Store("numbers") 

Pon cosas en esto:

 numbers.set('num', 2) 

Obtenga el valor y haga lo que quiera con él:

 numbers.get('num') + 1 //output: 3 

Y también puedes volverte loco y usar algunos arreglos:

 numbers.set('nums', [1,2,3]) 

Y cambiar cosas dentro de él:

 numbers.get('nums')[0] + 3 //output: 4 

No se necesita conversión de tipo. También puede almacenar objetos, booleanos y otras cosas. No olvide guardar las cosas en el almacenamiento, ya que no lo hace automáticamente.

Para solucionar el problema de obtener 01 , simplemente convierta la variable a un número:

 var i = +localStorage.getItem('Counter'); // or +localStorage.Counter; 

Si desea un nombre de clave incremental, también se puede usar el siguiente código (siempre que no se eliminen las teclas intermedias):

 var keyname = 'Value' + localStorage.length; localstorage.setItem(keyname, value);