2
votes

Utilisation de localStorage / sessionStorage pour stocker des baies

J'essaye d'enregistrer un tableau à l'intérieur d'une valeur localStorage. Je ne peux accéder qu'aux caractères de la valeur, pas à la valeur groupée. J'ai essayé d'écrire une fonction pour les regrouper par des virgules, mais je ne sais pas comment le faire correctement.

// setting values
localStorage.setItem("foo", [15,"bye"]);

// writes the whole thing.
document.write(localStorage.getItem("foo")); // returns 15,bye

// only writes the first character, instead of one part of the array 
// (in this case it would be 15).
document.write(localStorage.getItem("foo")[0]); // returns 1


3 Réponses :


1
votes

J'utiliserais JSON .stringify pour définir les données et JSON.parse pour récupérer les données stockées.

Essayez ceci:

localStorage.setItem("foo", JSON.stringify([15,"bye"]));

// writes the whole thing.
localStorage.getItem("foo"); // returns 15,bye

var data = JSON.parse(localStorage.getItem("foo"));
console.log(data[0])


0 commentaires

1
votes

localStorage ne peut stocker que la chaîne dans sa valeur, c'est pourquoi il n'en stocke que 15;

Utilisez JSON.stringify et stockez-le dans le stockage local sous le nom localStorage.setItem ("foo", JSON.stringify ([15, "bye"])) ;

Si vous voulez récupérer la valeur, faites comme JSON.parse(localStorage.getItem("foo"));


0 commentaires

0
votes

Vous pouvez analyser json

localStorage.getItem('foo').split(',')[0]

Ou vous pouvez diviser par "," et obtenir l'élément d'index 0e .

let data = JSON.parse(localStorage.getItem("foo"));
console.log(data[0])


0 commentaires