Entonces, estaba pensando que podría recorrer localStorage como un objeto normal ya que tiene una longitud. ¿Cómo puedo recorrer esto?
localStorage.setItem(1,'Lorem');
localStorage.setItem(2,'Ipsum');
localStorage.setItem(3,'Dolor');
Si lo hago localStorage.length
, devuelve lo 3
que es correcto. Entonces supongo que un for...in
bucle funcionaría.
Estaba pensando en algo como:
for (x in localStorage){
console.log(localStorage[x]);
}
Pero fue en vano. ¿Algunas ideas?
La otra idea que tuve fue algo como
localStorage.setItem(1,'Lorem|Ipsum|Dolor')
var split_list = localStorage.getItem(1).split('|');
En el for...in
que funciona.
javascript
html
loops
object
local-storage
Oscar ahijado
fuente
fuente
Respuestas:
Puedes usar el
key
método.localStorage.key(index)
devuelve laindex
clave th (el orden está definido por la implementación pero es constante hasta que agrega o elimina claves).Si el pedido es importante, puede almacenar una matriz serializada JSON:
El borrador de la especificación afirma que cualquier objeto que admita la clonación estructurada puede ser un valor. Pero esto todavía no parece ser compatible.
EDITAR: Para cargar la matriz, agréguela y luego almacene:
fuente
parse
es más seguro porque te protege de la ejecución de código. Y, a menudo, también es mucho más rápido. Ver blog.mozilla.com/webdev/2009/02/12/native-json-in-firefox-31JSON.parse('["Lorem", "Ipsum", "Dolor"]').length
La forma más sencilla es:
fuente
Además de todas las otras respuestas, puede usar $ .each función de la biblioteca jQuery:
Finalmente, obtenga el objeto con:
fuente
$
se usa para otras bibliotecas y también se usa a menudo como un alias paradocument.querySelectorAll
. La pregunta tampoco está etiquetada como una pregunta [jquery].Esto me funciona en Chrome:
fuente
for(var key in localStorage) { console.log(localStorage.getItem(key)); }
TypeError: Cannot call method 'toString' of null
, así que supongo que la 'clave' está regresando nulaSobre la base de la respuesta anterior, aquí hay una función que recorrerá el almacenamiento local por clave sin conocer los valores de clave.
Si examina la salida de la consola, verá que todos los elementos agregados por su código tienen un tipo de cadena. Mientras que los elementos integrados son funciones {[código nativo]} o, en el caso de la propiedad de longitud, un número. Puede usar la variable typeofKey para filtrar solo en las cadenas de modo que solo se muestren sus elementos.
Tenga en cuenta que esto funciona incluso si almacena un número o booleano como valor, ya que ambos se almacenan como cadenas.
fuente
Todas estas respuestas ignoran las diferencias entre las implementaciones de localStorage en los navegadores. Los colaboradores en este dominio deben calificar en gran medida sus respuestas con las plataformas que describen. Una implementación para todo el navegador está documentada en https://developer.mozilla.org/en/docs/Web/API/Window/localStorage y, aunque es muy potente, solo contiene algunos métodos básicos. Recorrer los contenidos requiere una comprensión de la implementación específica de los navegadores individuales.
fuente
localStorage
es unObject
.Podemos recorrerlo con JavaScript for / in Statement como cualquier otro objeto.
Y usaremos
.getItem()
para acceder al valor de cada tecla (x).fuente