Donc, je pensais que je pourrais simplement boucler sur localStorage comme un objet normal car il a une longueur. Comment puis-je parcourir cela?
localStorage.setItem(1,'Lorem');
localStorage.setItem(2,'Ipsum');
localStorage.setItem(3,'Dolor');
Si je fais un localStorage.length
il retourne 3
ce qui est correct. Je suppose donc qu'une for...in
boucle fonctionnerait.
Je pensais à quelque chose comme:
for (x in localStorage){
console.log(localStorage[x]);
}
Mais en vain. Des idées?
L'autre idée que j'avais était quelque chose comme
localStorage.setItem(1,'Lorem|Ipsum|Dolor')
var split_list = localStorage.getItem(1).split('|');
Dans lequel le for...in
fonctionne.
javascript
html
loops
object
local-storage
Oscar Godson
la source
la source
Réponses:
Vous pouvez utiliser la
key
méthode.localStorage.key(index)
renvoie laindex
clé th (l'ordre est défini par l'implémentation mais constant jusqu'à ce que vous ajoutiez ou supprimiez des clés).Si la commande est importante, vous pouvez stocker un tableau sérialisé JSON:
Le projet de spécification affirme que tout objet prenant en charge le clone structuré peut être une valeur. Mais cela ne semble pas encore pris en charge.
EDIT: Pour charger le tableau, ajoutez-y, puis stockez:
la source
parse
est plus sécurisé car il vous protège de l'exécution de code. Et souvent, c'est aussi beaucoup plus rapide. Voir blog.mozilla.com/webdev/2009/02/12/native-json-in-firefox-31JSON.parse('["Lorem", "Ipsum", "Dolor"]').length
Le moyen le plus simple est:
la source
En plus de toutes les autres réponses, vous pouvez utiliser fonction $ .each de la bibliothèque jQuery:
Finalement, récupérez l'objet avec:
la source
$
est utilisé pour d'autres bibliothèques et est également souvent utilisé comme alias pourdocument.querySelectorAll
. La question n'est pas non plus étiquetée comme question [jquery].Cela fonctionne pour moi dans Chrome:
la source
for(var key in localStorage) { console.log(localStorage.getItem(key)); }
TypeError: Cannot call method 'toString' of null
, donc je suppose que 'key' renvoie nullEn s'appuyant sur la réponse précédente, voici une fonction qui parcourra le stockage local par clé sans connaître les valeurs de clé.
Si vous examinez la sortie de la console, vous verrez que les éléments ajoutés par votre code ont tous une chaîne typeof. Alors que les éléments intégrés sont soit des fonctions {[code natif]}, soit dans le cas de la propriété length un nombre. Vous pouvez utiliser la variable typeofKey pour filtrer uniquement sur les chaînes afin que seuls vos éléments soient affichés.
Notez que cela fonctionne même si vous stockez un nombre ou un booléen comme valeur car ils sont tous deux stockés sous forme de chaînes.
la source
Toutes ces réponses ignorent les différences entre les implémentations de localStorage dans les navigateurs. Les contributeurs dans ce domaine doivent fortement qualifier leurs réponses avec les plates-formes qu'ils décrivent. Une implémentation à l'échelle du navigateur est documentée à https://developer.mozilla.org/en/docs/Web/API/Window/localStorage et, bien que très puissante, ne contient que quelques méthodes de base. La lecture en boucle du contenu nécessite une compréhension de l'implémentation spécifique à chaque navigateur.
la source
localStorage
est unObject
.Nous pouvons le parcourir avec JavaScript for / in Statement comme n'importe quel autre objet.
Et nous utiliserons
.getItem()
pour accéder à la valeur de chaque clé (x).la source