Как я могу получить значение элемента массива localStorage, используя переменную? - PullRequest
0 голосов
/ 07 июня 2019

У меня есть несколько ключей localStorage, которые выглядят примерно так в dev tools -> storage ...

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

... у каждой панели есть несколько элементов и ссылок с номером в имени, которое увеличивается. Я пытаюсь пройтись по каждой панели, и для панели я хочу получить первый элемент и ссылку для отображения на веб-странице, а затем продолжать цикл, пока не останется больше элементов или ссылок, прежде чем делать то же самое со следующей панелью. В тот момент, когда я пытаюсь это сказать «неопределенный». Как я могу получить правильное значение? Прямо сейчас мой код выглядит так ...

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);
};

1 Ответ

2 голосов
/ 07 июня 2019

Я думаю, что вы имеете в виду panel[item] вместо panel.item (что означает panel["items"]).Это объясняет "неопределенное" значение.

Самый внутренний цикл должен выглядеть как

for(var $x = 1; $x <= 5; $x++) {
    var item = 'item_'+$x;
    alert(panel[item]);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...