Проблема с выводом информации из js в html-таблицу

Здесь я получаю данные из питона и кладу их в локальное хранилище

async function results() {
            let a = await eel.get_data()();
            console.log(a);
            let i = 0;
            while (a.length > i) {
                localStorage.setItem(i, a[i]);
                let k = localStorage.getItem(i, a[i]);
                console.log(k);
                i++;
            }
            
        } 

здесь я пытаюсь получить информацию из локального хранилища

        var arr = new Array();
        localData = localStorage;
        function getData(){
            var str = localStorage.getItem("localData");
            if (str != null) {
            arr = JSON.parse(str);
            }
            return arr;
        }

затем я хочу отобразить эту информацию в таблицу html

            function showData(){
            getData();
            var tbl = document.getElementById("table");

            for(i = 0; i<arr.length; i++) {
                var r = tbl.insertRow();
                var cell1 = r.insertCell();
                var cell2 = r.insertCell();
                var cell3 = r.insertCell();
                var cell4 = r.insertCell();
                var cell5 = r.insertCell();

                cell1.innerHTML = arr[i].id;
                cell2.innerHTML = arr[i].rasp;
                cell3.innerHTML = arr[i].name;
                cell4.innerHTML = arr[i].sn;
                cell5.innerHTML = arr[i].inv;
            }

        }
        showData();

Но после всего этого, браузер выдает ошибку

**Возникло исключение: TypeError: Cannot read properties of undefined (reading 'length')
  at showData**
for(i = 0; i<arr.length; i++)

Получается у меня переменная arr пустая? Как можно это исправить? Помогите пожалуйста((


Ответы (1 шт):

Автор решения: Алексей
async function results() {
    let a = await eel.get_data()();
    localStorage.setItem("localData", JSON.stringify(a));
    var mytable = JSON.parse(localStorage.getItem('localData')); 
    console.log('Данные из локального хранилища:', mytable);
}
var arr = new Array();
function getData(){
    var str = localStorage.getItem('localData');
    if (str != null) {
        arr = JSON.parse(str);
    }
}
function showData(){
    results();
    getData();
    const [id, rasp, name, sn, inv] = [0, 1, 2, 3, 4]
    var tbl = document.getElementById('table');

    for(i = 0; i<arr.length; i++) {
        var r = tbl.insertRow();
        var cell1 = r.insertCell();
        var cell2 = r.insertCell();
        var cell3 = r.insertCell();
        var cell4 = r.insertCell();
        var cell5 = r.insertCell();

        cell1.innerHTML = arr[i][id];
        cell2.innerHTML = arr[i][rasp];
        cell3.innerHTML = arr[i][name];
        cell4.innerHTML = arr[i][sn];
        cell5.innerHTML = arr[i][inv];
    }

}
→ Ссылка