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);