1

JavaScriptでJSON形式のデータを作成できることを知っています

data = JSON.parse(localStorage.something);
data[0] == "some data";

しかし、削除しようとすると機能しません。

delete data[0];
4

2 に答える 2

3

delete data[0]data配列からそのアイテムのみを削除しますが、これはlocalStorageアイテムではありません(ご存知のように、そのアイテムは文字列であるため)。

変更を保存する必要があります。またdata.shift()、代わりに minitech のコメントに従って使用することをお勧めしますdelete-deleteは、配列インデックスではなく、オブジェクト プロパティに適しています。

data = JSON.parse(localStorage.something);
data.shift(); // delete data[0] without breaking sequence
localStorage.something = JSON.stringify(data);
于 2013-09-29T15:10:27.893 に答える
2

あなたがした後:

data = JSON.parse(localStorage.something);

次に、data変数は、localStorage から完全に切り離された独立したオブジェクトを保持します (「実際の」オブジェクトではなく、いずれにせよ解析する必要がある String のみを格納します)。

変更した場合は、次のようにローカル ストレージを手動で更新する必要があります。

localStorage.setItem("something", JSON.stringify(data));

補足として、古いブラウザーを対象としている場合は、json2.js などを含めて、JSON オブジェクトがどこでも機能するようにしてください。

于 2013-09-29T15:20:25.957 に答える