Question

Lets say my sessionStorage contains three objects who's keys are foo, foobar, and baz. Is there a way that I can call .removeItem or somehow delete all items in sessionStorage who's keys match foo? In this example I'd be left with only the item who's key is baz.

Était-ce utile?

La solution

Update September 20, 2014 As pointed out by Jordan Trudgett the reverse loop is more appropriate

You can only achieve it programmatically as sessionStorage exposes a limited set of methods: getItem(key), setItem(key, value), removeItem(key), key(position), clear() and length():

var n = sessionStorage.length;
while(n--) {
  var key = sessionStorage.key(n);
  if(/foo/.test(key)) {
    sessionStorage.removeItem(key);
  }  
}

See Nicholas C. Zakas' blog entry for more details:

http://www.nczonline.net/blog/2009/07/21/introduction-to-sessionstorage/

Autres conseils

You could do something like

Object.keys(sessionStorage)
  .filter(function(k) { return /foo/.test(k); })
  .forEach(function(k) {
    sessionStorage.removeItem(k);
  });

Since both local and sessionStorage are objects you can go through their properties like this:

    for (var obj in localStorage) {
      if (localStorage.hasOwnProperty(obj) && obj == "myKey") {
        localStorage.removeItem(obj);
      }
    }

and remove the desired values by key, here it's "myKey" for example.

Remove all session storage items:

sessionStorage.clear()

Try this:

 angular.forEach(sessionStorage, function (item,key) {
          sessionStorage.removeItem(key);
      });

This will delete everything from sessionStorage

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top