Disons que ma sessionStorage
contient trois objets dont les clés sont foo
, foobar
et baz
. Est-il possible d'appeler .removeItem
ou de supprimer en quelque sorte tous les éléments de sessionStorage
dont les clés correspondent à foo
? Dans cet exemple, il ne resterait que l'élément dont la clé est baz
.
Mise à jour du 20 septembre 2014 Comme l'a souligné Jordan Trudgett, la boucle inversée est plus appropriée
Vous ne pouvez le réaliser que par programme car sessionStorage
expose un ensemble limité de méthodes: getItem(key)
, setItem(key, value)
, removeItem(key)
, key(position)
, clear()
et length()
:
var i = sessionStorage.length;
while(i--) {
var key = sessionStorage.key(i);
if(/foo/.test(key)) {
sessionStorage.removeItem(key);
}
}
Voir l'entrée de blog de Nicholas C. Zakas pour plus de détails:
http://www.nczonline.net/blog/2009/07/21/introduction-to-sessionstorage/
Vous pourriez faire quelque chose comme
Object.keys(sessionStorage)
.filter(function(k) { return /foo/.test(k); })
.forEach(function(k) {
sessionStorage.removeItem(k);
});
Puisque local et sessionStorage sont des objets, vous pouvez passer par leurs propriétés comme ceci:
for (var obj in localStorage) {
if (localStorage.hasOwnProperty(obj) && obj == "myKey") {
localStorage.removeItem(obj);
}
}
et supprimez les valeurs souhaitées par clé, ici c'est "myKey" par exemple.
Essaye ça:
angular.forEach(sessionStorage, function (item,key) {
sessionStorage.removeItem(key);
});
Cela supprimera tout de sessionStorage