188 votes

Obtenir les clés HTML5 localStorage

Je me demande juste comment obtenir toutes les valeurs de clés dans localStorage .


J'ai essayé de récupérer les valeurs avec une simple boucle JavaScript.

for (var i=1; i <= localStorage.length; i++)  {
   alert(localStorage.getItem(i))
}

Mais cela ne fonctionne que si les touches sont des numéros progressifs, en commençant par 1.


Comment obtenir toutes les clés, afin d'afficher toutes les données disponibles ?

0 votes

1 votes

Duplicata possible de stackoverflow.com/questions/3138564/

1 votes

Pourquoi cette boucle commence-t-elle par i = 1 et se termine-t-elle par i = localStorage.length ? Dans les navigateurs que j'ai testés (Chrome), la boucle devrait commencer à 0 et se terminer à localStorage.length - 1...

9voto

Admir Points 482

Vous pouvez obtenir des clés et des valeurs comme ceci :

for (let [key, value] of Object.entries(localStorage)) {
  console.log(`${key}: ${value}`);
}

8voto

cillay Points 71

Si le navigateur prend en charge le LocalStorage HTML5, il doit également mettre en œuvre Array.prototype.map, ce qui permet de le faire :

Array.apply(0, new Array(localStorage.length)).map(function (o, i) {
    return localStorage.key(i);
})

7voto

Sean Colombo Points 430

Puisque la question mentionnait la recherche des clés, je me suis dit que pour afficher chaque paire clé-valeur, vous pourriez faire comme ceci (basé sur la réponse de Kevin) :

for ( var i = 0, len = localStorage.length; i < len; ++i ) {
  console.log( localStorage.key( i ) + ": " + localStorage.getItem( localStorage.key( i ) ) );
}

Cela permettra d'enregistrer les données dans le format "clé : valeur".

(Kevin : n'hésitez pas à reprendre cette information dans votre réponse si vous le souhaitez).

2voto

Hassan Azimi Points 4494

Je suis d'accord avec Kevin, il a la meilleure réponse, mais parfois, lorsque vous avez différentes clés dans votre stockage local avec les mêmes valeurs, par exemple, si vous voulez que vos utilisateurs publics voient combien de fois ils ont ajouté leurs articles dans leurs paniers, vous devez leur montrer le nombre de fois aussi, alors vous pouvez utiliser ceci :

var set = localStorage.setItem('key', 'value');
var element = document.getElementById('tagId');

for ( var i = 0, len = localStorage.length; i < len; ++i ) {
  element.innerHTML =  localStorage.getItem(localStorage.key(i)) + localStorage.key(i).length;
}

2voto

Ceci imprimera toutes les clés et valeurs sur localStorage :

ES6 :

for (let i=0; i< localStorage.length; i++) {
    let key = localStorage.key(i);
    let value = localStorage[key];
    console.log(`localStorage ${key}:  ${value}`);
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X