Comment puis-je obtenir la valeur d'un élément de tableau localStorage à l'aide d'une variable ?


JMR0102

J'ai quelques clés de stockage local qui ressemblent à ceci dans les outils de développement -> stockage...

panel_1 {"name":"test_name", "item_1":"test_item", "link_1":"test_link"})

...chaque panneau que j'ai a plusieurs éléments et liens avec un numéro dans son nom qui augmente. J'essaie de parcourir chaque panneau et pour le panneau, je souhaite afficher le premier élément et le premier lien sur une page Web, puis continuer à parcourir jusqu'à ce qu'il n'y ait plus d'éléments ou de liens avant de faire de même avec le panneau suivant. Au moment où j'essaie cela, il est écrit "indéfini". Comment puis-je obtenir la valeur correcte ? Pour l'instant mon code ressemble à ça...

var total_keys = localStorage.length;
var panels = [];
var key;
var location = $('#panels .wrapper article:first-child()');

for($i = 0; $i < total_keys; $i++) {
    key = localStorage.key($i);
    if(key.slice(0, 6) === 'panel_') {
        panels.push(key);
    };
};

var total_panels = panels.length;

for(var $i = 0; $i < total_panels; $i++) {
    var panel = JSON.parse(localStorage.getItem(panels[$i]));
    var items = function() {
        for(var $x = 1; $x <= 5; $x++) {
            var item = 'item_'+$x;
            alert(panel.item);
        };
    };

    location.after(items);
};
Julien Barrois

Je pense que tu veux dire panel[item]au lieu de panel.item(ce qui veut dire panel["items"]). Cela expliquerait la valeur "indéfinie".

La boucle la plus intérieure devrait ressembler à

for(var $x = 1; $x <= 5; $x++) {
    var item = 'item_'+$x;
    alert(panel[item]);
};

Articles connexes