私のsessionStorage
には、キーがfoo
、foobar
、およびbaz
の3つのオブジェクトが含まれているとします。 .removeItem
を呼び出す方法、またはsessionStorage
のすべてのアイテムを削除する方法はありますか?誰がキーと一致するかfoo
ですか?この例では、キーがbaz
であるアイテムのみが残されています。
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/
次のようなことができます
Object.keys(sessionStorage)
.filter(function(k) { return /foo/.test(k); })
.forEach(function(k) {
sessionStorage.removeItem(k);
});
LocalとsessionStorageの両方がオブジェクトであるため、次のようにプロパティを確認できます。
for (var obj in localStorage) {
if (localStorage.hasOwnProperty(obj) && obj == "myKey") {
localStorage.removeItem(obj);
}
}
キーで目的の値を削除します。ここでは、たとえば「myKey」です。
これを試して:
angular.forEach(sessionStorage, function (item,key) {
sessionStorage.removeItem(key);
});
これにより、sessionStorageからすべてが削除されます