【问题标题】:Reading a file and storing it in an array in javascript读取文件并将其存储在javascript中的数组中
【发布时间】:2018-05-30 01:56:08
【问题描述】:

首先,我正在使用 Javascript 进行编程,但不是针对网站或类似的东西。只是我电脑文件夹中的一个 .js 文件(稍后我将该 .js 文件传递​​给其他人,以便他们可以使用它)。

现在,我想读取与脚本位于同一文件夹中的 txt 文件,并将其内容存储在变量中。我想做这样的事情:Reading a file and storing it in an array, then splitting up the file everywhere there is a }, 然后,如果一个字符串(由用户输入,我已经介绍过)包含数组中的一个子字符串,它将调用一个函数。

你能帮帮我吗?

【问题讨论】:

  • 浏览器/javascript 无权访问文件系统。您的网络服务器必须提供 json 文件或让用户自己明确上传文件
  • 感谢您的回答,我会找到一种方法将内容存储在其他地方而不是 txt 文件:) 除此之外...您对帖子的其余部分有所了解吗?提前致谢
  • stackoverflow.com/questions/14446447/… 检查建议使用 fetch api 的答案,似乎很有希望......
  • @sinisake 尝试该方法时出错。也许它已经过时了。 Failed to load file:///C:/Users/ME/Downloads/test.txt: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https. 来自 Chrome
  • 当我阅读该答案中的 cmets 时,似乎其他人也看到了同样的情况

标签: javascript arrays file


【解决方案1】:

如果不需要在浏览器中运行,您可以使用 node 并使用 fs 来读取/写入文件。

Node

Node fs(文件系统):

如果您需要在浏览器中运行,您可以使用XMLHttpRequest 和 ajax。

或者使用输入类型=文件并使用FileReader

【讨论】:

    【解决方案2】:

    正如我们在 cmets 中回答了您问题的第一部分,这是我对您问题第二部分的解决方案。

    您可以在输入上添加事件侦听器,并根据数组中的值检查用户输入。我可能误解了您所说的“子字符串”的确切含义

    var myData = ["world","one","two", "blue"];
    
    document.getElementById('theInput').addEventListener('input',checkInput);
    
    function checkInput(){
      var input = this.value;
      if(myData.indexOf(input) > -1){
        console.log("match!")
        // call your function
      }
    }
    <input id='theInput' type='text'/>

    【讨论】:

    • 抱歉,代码的第二行(document.getElementById...) 是做什么用的?顺便说一句,我的脚本不在 html 文件中
    • 该行以 id theInput 元素为目标,并在其上添加了一个监听事件。因此,每当输入发生变化时,它都会使用输入元素的上下文调用checkInput 函数。
    • 您的脚本不需要在 .html 文件中。它可以在自己的文件中,然后使用 加载到 html 文件中
    • 我的意思是该脚本没有在网站中使用,也没有通过 Web 浏览器执行(还记得 Windows Live Messenger 吗?它通过 Escargot MSN 服务器再次活跃,所以我正在编写一个Messenger Plus 的插件,你还记得吗?它使用了 javascript)。无论如何,“输入”是由脚本中的另一个函数设置的。
    • 另外...调试窗口显示“错误:'文档'未定义”:s
    猜你喜欢
    • 2020-12-26
    • 1970-01-01
    • 2020-02-09
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多