문제

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.

도움이 되었습니까?

해결책

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/

다른 팁

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top