/ / Problémy vytvárajú viacrozmerné pole v lokálnom úložisku - javascript, html5, viacrozmerné pole, miestne úložisko

Problémy vytvárajú multidimenzionálne pole v localstorage - javascript, html5, multidimensional-array, local-storage

Pokúšam sa uložiť nejaké údaje do lokálneho úložiska. Môj skript vyzerá takto:

    localStorage.clear(); //only for testing

if(typeof localStorage.akten == "undefined") {
localStorage.akten = new Array();
}

var nam = "alpha";


localStorage.akten[nam] = {
"beta": 12
};

localStorage["a_akte"] = nam;

Ale ak áno console.log(localStorage); alebo console.log(localStorage.akten); akten je iba prázdny reťazec? Prečo? S normálnym objektom namiesto localStorage funguje dobre.

odpovede:

4 pre odpoveď č. 1

To je preto, že localStorage nie je objekt; je to rozhranie. Môžete priradiť iba povrázok a najlepší spôsob, ako to dosiahnuť, je localStorage.setItem, Ak chcete nastaviť zložitejšie údaje, musíte ich zakódovať ako JSON najprv.

function localStore(key, obj) {
return window.localStorage.setItem(key, JSON.stringify(obj));
}

function localGet(key) {
return JSON.parse(window.localStorage.getItem(key));
}

localStore("foo", {bar: "baz"});
localGet("foo"); // Object {bar: "baz"}

3 pre odpoveď č. 2

Je prekvapujúce, že diabol je v detailoch. localStorage ukladá iba reťazce. Pred uložením ich do objektu JSON kódujte napríklad pomocou JSON.stringify() a JSON.parse().