【JS応用|初心者向け】ブラウザの小箱を使いこなそう!localStorage.lengthで保存データを管理する方法

1. 導入:なぜlocalStorage.lengthが必要なのか?

Webアプリ開発をしていると、ユーザーのブラウザに「お気に入り設定」や「入力中のメモ」などを一時保存したい場面があります。その際に便利なのがlocalStorageです。しかし、保存したデータが増えすぎるとブラウザの容量制限に達したり、管理が煩雑になったりします。
そんな時、「現在いくつデータが保存されているか」を教えてくれるのがlocalStorage.lengthです。これを使うことで、ストレージの空き容量を意識したり、保存データの一覧を表示したりといった制御が可能になります。

2. 基礎知識:localStorageとは?

localStorageは、ブラウザ内にキーと値のペアでデータを永続的に保存できる仕組みです。
・キー(Key):データを識別するための名前(例: ‘userName’)
・値(Value):保存したいデータ(例: ‘Taro’)
これらは文字列として保存されます。localStorage.lengthは、この「キーと値のペア」がいくつ保存されているかを数値で返すプロパティです。配列のlengthと同じ感覚で使えるため、初心者の方でも非常に扱いやすいのが特徴です。

3. 実装:データの個数を確認して制御する

localStorage.lengthを活用する最も一般的なケースは「保存件数の制限」です。例えば、「保存できるのは最大5つまで」というルールを作りたい場合、以下のような論理で実装します。
1. 現在のlengthを確認する。
2. もし上限に達していたら、古いデータを削除する(またはユーザーに警告する)。
3. 新しいデータを保存する。

4. サンプルプログラム:保存件数をカウントして制限する

以下のコードは、ブラウザのコンソールで動作確認できます。コピーして試してみてください。

// 1. データを保存する関数
function addData(key, value) {
  // 現在の保存件数を確認
  const currentCount = localStorage.length;
  
  // 保存上限を3件に設定
  const MAX_LIMIT = 3;

  if (currentCount >= MAX_LIMIT) {
    console.log("上限に達しました。一番古いデータを削除します。");
    // 最初のインデックスのキーを取得して削除
    const firstKey = localStorage.key(0);
    localStorage.removeItem(firstKey);
  }

  // データを保存
  localStorage.setItem(key, value);
  console.log("現在の保存数: " + localStorage.length);
}

// 実行テスト
addData('item1', 'りんご');
addData('item2', 'みかん');
addData('item3', 'ぶどう');
addData('item4', 'メロン'); // 4つ目を入れるとitem1が消える

5. 応用・注意点:現場での活用と落とし穴

・インデックスの順序に注意
localStorage.key(n)で取得できるキーの順番は、ブラウザによって保証されていない場合があります。「古い順」に消したい場合は、データの中にタイムスタンプを含めるなど、工夫が必要です。
・容量制限の意識
localStorageにはブラウザごとに約5MBの容量制限があります。lengthで件数を管理していても、一つのデータが巨大だとすぐに制限を超えてしまいます。あくまで「件数」の管理として使い、データサイズ自体も意識するようにしましょう。
・JSON変換を忘れずに
localStorageには文字列しか保存できません。オブジェクトや配列を保存したい場合は、JSON.stringify()で文字列化し、取り出すときにJSON.parse()で元に戻すのを忘れないようにしてください。

タイトルとURLをコピーしました