web-dev-qa-db-ja.com

HTML5 Localstorage&jQuery:特定の単語で始まるlocalstorageキーを削除します

2つのアプリがlocalstorageと連携して動作しているのですが、note-とtodo-で始まるすべてのキーを削除するにはどうすればよいのでしょうか。 localstorage.clear()がすべてをクリアすることは知っていますが、それは私の目的ではありません。

これが私のローカルストレージにあるものの例です: enter image description here

すべてのtodoを削除したい場合-*ボタンクリックですべてメモ-* jqueryを使用して他のボタンクリックで。

どうもありがとう

21
jQuerybeast
Object.keys(localStorage)
      .forEach(function(key){
           if (/^todo-|^note-/.test(key)) {
               localStorage.removeItem(key);
           }
       });
42
Ghostoy

@Ghostoyと同様のメソッドを使用しましたが、コード内のいくつかの場所からこれを呼び出すため、パラメーターを入力したいと思いました。正規表現でパラメーター名を使用できなかったため、代わりに部分文字列を使用しました。

function ClearSomeLocalStorage(startsWith) {
    var myLength = startsWith.length;

    Object.keys(localStorage) 
        .forEach(function(key){ 
            if (key.substring(0,myLength) == startsWith) {
                localStorage.removeItem(key); 
            } 
        }); 
}
10
WEFX