2017-09-01 1 views
1

助けてください!私はあなたのタイトル、you-firstname、パートナー - タイトル、パートナー - firstnameのようなlocalStorage項目を設定しました、そして、私は各プレフィックスの数が設定されているとカウントし、プレフィックスをキーとしてカウントを設定したいと思います。jQueryを使用して一意の単語で始まるlocalStorageキーの数を設定する

var j = 0; 
for (var i = 0, len = localStorage.length; i < len; i++) { 
    var key = localStorage.key(i); 
    var prefix = key.split('-')[0]; 

    if (prefix === 'you') { 
      j++; 
      localStorage.setItem(prefix, j); 
    } 
} 

しかし、私はハードコードそれらこのようにしたくないので、私はむしろ異なるプレフィックスをたくさん持っている:私はこれまで、単一のプレフィックスをプレフィックスを取得し、カウントとして得ることができます。

アイデア?

多くのありがとう、

ベン。

+0

何が質問ですか? – Edwin

答えて

2

これを達成するには、キーと値のペアを接頭辞とカウントとして使用してオブジェクトを作成します。私は、スニペットがのlocalStorageへのアクセスを制限するようにjsFiddle例を入れていた

var counterObj = {}; 
Object.keys(localStorage).forEach(function(key){ 
    var prefix = key.split('-')[0]; 
    counterObj[prefix] = ++counterObj[prefix] || 1; 
}); 

console.log(counterObj); 

Working example

注:この方法は、あなたはそれがすべての実行時にセットのように、キーが何であるかを知る必要はありません。

関連する問題