2012-04-25 3 views
0

こんにちは私は自分のローカルストレージに追加されるデータを制限する必要があります。ユーザーが6番目のアイテムを追加した場合、最初のアイテムを削除する必要があります。私はその部分を達成しましたが、それを取得するときに、削除されたデータを取り出して4番目の項目をスキップします。何か案は?ローカルストレージにデータの格納を制限して取得する方法は?

私は物事を設定する方法

var _i = 0 //global; 
storage.setItem(_i, URL); 

checkLimit

if(storage.length >= 5) 
{ 
    var _a = storage.getItem(0); 
    storage.removeItem(_a); 
    _a += 1; 
} 

ああ、私はにキーインデックスを使用するときにすることを言及するのを忘れてしまった

for(var _x = 1; _x <= storage.length - 1; _x++) 
{ 
    var _url = storage.getItem(_x); 
} 

更新

それを取得する場合アイテムを取得するそれは削除されたデータを表示しませんが、何とか4番目をスキップします。

更新2

今では4番目のレコードをスキップしませんが、それは削除されたデータを示し、最後に追加されたデータは表示されません。例えば

the //first 
avengers //second 
are //third 
coming //fourth 
now //fifth 
excited //sixth 

私は、具体的には5(5)theをリストから削除されるべきであるとexcitedを加えなければならないに制限するので。その罰金が、私は、アプリケーションを閉じて、データを取得しようとすると、それは

the 
avengers 
are 
coming 
now 

を返し、それがないではないショーexcitedやって私はセンスがいるのでしょうか?

答えて

0

Web Storageキーの順序に頼ることはできません。この質問をチェックしてください:HTML5 localStorage key order
これを行うには、localStorageに格納される配列オブジェクトを使用してください。

+0

変更はありません。私はまだ問題があります。長さが5に達するか超えた場合、アイテムを削除していることに注意してください。 – jongbanaag

+0

あなたのコードを確認できますか? –

+0

答えのhttp://jsfiddle.net/vJkBQ/4/を参照してください。http://stackoverflow.com/questions/18606256/push-not-working-in-javascript?noredirect=1#comment27386544_18606256これは 'getItemIndexById'関数を使ってあなたを助けるかもしれません。 – Nothing

関連する問題