首页 > 解决方案 > 将数据导入本地存储

问题描述

任何人都可以帮我整理以下代码或帮助我朝着正确的方向前进吗?

它需要从 .txt 文件中导入数据并将其作为键和值存储到本地存储中。

键在':'之前,值在它之后。在每个“,”之后分隔一个新的键/值。

.txt 文件中的示例数据是:

nl-step1chapter1Question6:U2FsdGVkX19bRT84xShxK+29ypgj1d6ZHt+2DVBCUtY=,nl-step1chapter1Question1:U2FsdGVkX1+/Sv61L69bLvQGTkf1A9Uy4jgJ3KZTkzI=,nl-step1chapter1Question4:U2FsdGVkX1+9SVVOvTKeZuaQGj58L5WnEgL8htS0c7U=,jft:320982da-f32a-46a2-a97c-605ebe305518,nl-step1chapter1Question5:U2FsdGVkX19pi8A+PQZ7rBNCWrFeCwl2HdXpV+wWkFk =,nl-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>

任何帮助深表感谢!

标签: javascriptarraysstringlocal-storage

解决方案


你使用的方式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=step1chapter1Question1value=U2FsdGVkX1+/Sv61L69bLvQGTkf1A9Uy4jgJ3KZTkzI=


推荐阅读