web-dev-qa-db-ja.com

特定のパターンに一致するキーを持つすべてのsessionStorageアイテムを削除する方法はありますか?

私のsessionStorageには、キーがfoofoobar、およびbazの3つのオブジェクトが含まれているとします。 .removeItemを呼び出す方法、またはsessionStorageのすべてのアイテムを削除する方法はありますか?誰がキーと一致するかfooですか?この例では、キーがbazであるアイテムのみが残されています。

16
Jesse Atkinson

2014年9月20日更新 Jordan Trudgettが指摘したように、逆ループがより適切です

sessionStorageがメソッドの限られたセットを公開しているため、プログラムでのみ実現できます:getItem(key)setItem(key, value)removeItem(key)key(position)clear()およびlength()

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

詳細については、Nicholas C. Zakasのブログエントリを参照してください。

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

36
roland

次のようなことができます

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

LocalとsessionStorageの両方がオブジェクトであるため、次のようにプロパティを確認できます。

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

キーで目的の値を削除します。ここでは、たとえば「myKey」です。

2
petko

これを試して:

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

これにより、sessionStorageからすべてが削除されます

0
Shubham Takode