首页 > 解决方案 > 逐行读取txt文件并在每一行更新变量

问题描述

我正在尝试使用 fetch() 逐行读取 txt 文件

这是我所拥有的:

fetch('http://localhost:8888/foo.txt')
  .then(response => response.text())
  .then((data) => {
  var player = GetPlayer();
  player.SetVar("phrase",data);
  })

此代码一次读取整个 txt 文件并将其正确显示在“短语”变量上。

但我想要类似:
读取第 1 行 -> 在变量读取第 2 行上显示第 1行 -> 在变量 读取第 3
行上显示第 2行 -> 在变量上显示第 3 行 ...

那可能吗?

谢谢!

标签: javascriptarraysfetch-api

解决方案


您可以只使用一些 String 方法。您可以使用 .split() 方法\n作为正则表达式,它将您的数据拆分为一个数组。

例子:

假设 localhost:6060/foo.txt 的文本文件具有以下内容:

格式 -username:password

Peter:NoLol1231@
Maffe:xDOkLmao
Loe:OOPSOkay
John:OhXDAlright

我们可以像这样以适当的方式访问数据,

const fetch = require('node-fetch');
async function getData() {
   return new Promise(resolve => {
       let result = (await (await fetch("http://localhost:6060/foo.txt")).text()).split('\n');
       let finalres = result.map((x) => ({[x.split(':')[0]]: x.split(':')[1]}));
       resolve(finalres)
   });
}

getData((d) => {
   console.log(d["Peter"]); // Will print his password now!
});

推荐阅读