Импорт данных в локальное хранилище - PullRequest
0 голосов
/ 06 мая 2020

Может ли кто-нибудь помочь мне с сортировкой следующего кода или помочь мне в правильном направлении?

Требуется импортировать данные из файла .txt и сохранить их в локальном хранилище как ключ и значение.

Ключ стоит перед ':', а значение идет после него. Новый ключ / значение отделяется после каждого ','.

Пример данных из файла .txt:

nl-step1chapter1Question6: U2FsdGVkX19bRT84xShxK + 29ypgj1d6ZHt + 2DVBCUttion1chapter1chapter1chapter1, nlQuestion1chapter1 : U2FsdGVkX1 + / Sv61L69bLvQGTkf1A9Uy4jgJ3KZTkzI =, п-step1chapter1Question4: U2FsdGVkX1 + 9SVVOvTKeZuaQGj58L5WnEgL8htS0c7U =, JFT: 320982da-f32a-46a2-A97 c -605ebe305518, п-step1chapter1Question5: U2FsdGVkX19pi8A + PQZ7rBNCWrFeCwl2HdXpV + wWkFk =, п-step1chapter1Question2: U2FsdGVkX19hnRnpmP3omzYNU0jXd3NtsHM + mvGYBnc =, nl-step1chapter1Question3: U2FsdGVkX1 + hPbMRN + x19y7pF73eXoxG0qK1igZYZbA =

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script type="application/x-javascript">
$(function importData() {
    document.getElementById('file').onchange = function () {
        //debugger;
        var file = this.files[0];
        var reader = new FileReader();
        reader.onload = function (progressEvent) {
            //console.log(this.result.split(','));

            var lines = this.result.split(',');

            var list = [];

            for (var line = 0; line < lines.length; line++) {
                list.push(lines[line]);
                localStorage.setItem([line],lines);
            }
        };
        reader.readAsText(file);
    };
});
</script>

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 06 мая 2020

То, как вы используете FileReader, мне не кажется правильным. Вот как должна выглядеть ваша importData() функция:

$(function importData() {
    document.getElementById('file').onchange = function (event) {
        var input = event.target;

        var reader = new FileReader();
        reader.onload = function () {
            var text = reader.result;
            var lines = text.split(',');

            for (var line = 0; line < lines.length; line++) {
              let elements = lines[line].split(':');
              localStorage.setItem(elements[0], elements[1]);
            }
        };

        reader.readAsText(input.files[0]);
    };
});

Она вставит элементы в localStorage, как вы описали. Например: key = step1chapter1Question1 и value = U2FsdGVkX1+/Sv61L69bLvQGTkf1A9Uy4jgJ3KZTkzI=

...