4

localStorage ["Value0"]、localStorage ["Value1"]、...のように増分値でlocalStorageに動的に保存される値がいくつかあります。

私がこのようにそれらにアクセスしようとすると:

JavaScript:

localStorage["Counter"]=0;
var i = localStorage["Counter"]; 
var d =localStorage["Value"+i];
i = i + 1; // i becomes "01"
var f = localStorage["Value"+i];

iの値は1ではなく「01」です...iの値を正しくインクリメントする方法はありますか?

4

2 に答える 2

16

LocalStorageは文字列値のみを格納できます。文字列を整数に変換するparseIntを使用できます。

var new_value =  parseInt(localStorage.getItem('num')) + 1

store.jsなどのライブラリを使用して、自動的に処理を行うこともできます。あなたがしなければならないのは、ライブラリを含めることだけです:

<script src="store.js"></script>

新しいストレージを設定します。

var numbers = new Store("numbers")

それに物事を入れてください:

numbers.set('num', 2)

値を取得し、それを使ってやりたいことを何でもします。

numbers.get('num') + 1 //output: 3

また、気が狂っていくつかの配列を使用することもできます。

numbers.set('nums', [1,2,3])

そして、その中の物事を変更します:

numbers.get('nums')[0] + 3 //output: 4

型変換は必要ありません。オブジェクト、ブール値、その他のものを保存することもできます。自動的に行われないため、ストレージに保存することを忘れないでください。

于 2012-07-07T14:06:27.637 に答える
2

取得の問題を修正するには01、変数を数値に変換するだけです。

var i = +localStorage.getItem('Counter'); // or +localStorage.Counter;

増分キー名が必要な場合は、次のコードも使用できます(間にキーを削除しない場合)。

var keyname = 'Value' + localStorage.length;
localstorage.setItem(keyname, value);
于 2012-07-07T13:34:30.507 に答える