Então, eu estava pensando que poderia simplesmente percorrer localStorage como um objeto normal, pois tem um comprimento. Como posso fazer um loop por isso?
localStorage.setItem(1,'Lorem');
localStorage.setItem(2,'Ipsum');
localStorage.setItem(3,'Dolor');
Se eu fizer um, localStorage.length
ele retorna o 3
que está correto. Então, eu presumo que um for...in
loop funcione.
Eu estava pensando algo como:
for (x in localStorage){
console.log(localStorage[x]);
}
Mas não adiantou. Alguma ideia?
A outra ideia que tive foi algo como
localStorage.setItem(1,'Lorem|Ipsum|Dolor')
var split_list = localStorage.getItem(1).split('|');
Em que for...in
funciona.
javascript
html
loops
object
local-storage
Oscar Godson
fonte
fonte
Respostas:
Você pode usar o
key
método.localStorage.key(index)
retorna aindex
enésima chave (a ordem é definida pela implementação, mas constante até que você adicione ou remova chaves).Se o pedido for importante, você pode armazenar uma matriz serializada JSON:
O rascunho das especificações afirma que qualquer objeto que suporte clone estruturado pode ser um valor. Mas isso ainda não parece ser compatível.
EDITAR: Para carregar a matriz, adicione a ela e armazene:
fonte
parse
é mais seguro porque protege você da execução de código. E frequentemente, também é muito mais rápido. Consulte blog.mozilla.com/webdev/2009/02/12/native-json-in-firefox-31JSON.parse('["Lorem", "Ipsum", "Dolor"]').length
A maneira mais simples é:
fonte
Além de todas as outras respostas, você pode usar a função $ .each da biblioteca jQuery:
Eventualmente, obtenha o objeto com:
fonte
$
é usado para outras bibliotecas e também é frequentemente usado como um alias paradocument.querySelectorAll
. A pergunta também não é marcada como uma pergunta [jquery].Isso funciona para mim no Chrome:
fonte
for(var key in localStorage) { console.log(localStorage.getItem(key)); }
TypeError: Cannot call method 'toString' of null
, então presumo que 'key' está retornando nullCom base na resposta anterior, aqui está uma função que percorrerá o armazenamento local por chave, sem conhecer os valores da chave.
Se você examinar a saída do console, verá que todos os itens adicionados pelo seu código têm uma string typeof. Considerando que os itens embutidos são funções {[código nativo]} ou, no caso da propriedade de comprimento, um número. Você pode usar a variável typeofKey para filtrar apenas nas strings, de forma que apenas seus itens sejam exibidos.
Observe que isso funciona mesmo se você armazenar um número ou booleano como o valor, pois ambos são armazenados como strings.
fonte
Todas essas respostas ignoram as diferenças entre as implementações de localStorage nos navegadores. Os contribuidores neste domínio devem qualificar fortemente suas respostas com as plataformas que estão descrevendo. Uma implementação em todo o navegador está documentada em https://developer.mozilla.org/en/docs/Web/API/Window/localStorage e, embora muito poderoso, contém apenas alguns métodos principais. O loop através do conteúdo requer uma compreensão da implementação específica para navegadores individuais.
fonte
localStorage
é umObject
.Podemos percorrê-lo com JavaScript for / in Statement como qualquer outro objeto.
E usaremos
.getItem()
para acessar o valor de cada chave (x).fonte