【问题标题】:Array being doubled after reading a .txt file using fs in nodejs在nodejs中使用fs读取.txt文件后数组被加倍
【发布时间】:2022-11-24 01:41:52
【问题描述】:

问题

下面的代码应该读取一个 project.skid 文件并将它的所有行加载到一个数组中。 例如,如果 project.skid 包含“HELLO WORLD”,则执行脚本时的预期输出将只是“HELLO WORLD”。 相反,它将所有内容加倍,例如:“HELLO WORLD”输出

HELLO WORLD
HELLO WORLD

代码

const fs = require("fs");

read()

//READING THE INITAL SCRIPT

function read() {

fs.readFile(__dirname + '/project.skid', 'utf8', (err, data) => {
    if (err) {
      console.error(err);
      return;
    }
    processfile(data)
  });
};

//SPLITTING INTO LINES

function processfile(data){
    var array = fs.readFileSync('project.skid', 'utf8').split('\n');
    for(i in array) {
        var arrayLength = array.length;
    for (var i = 0; i < arrayLength; i++) {
    console.log(array[i]);
}
}
} 

【问题讨论】:

    标签: node.js file


    【解决方案1】:

    您不需要 for 循环的最后一部分 - 您最终输出了两次内容。

    相反,您可以像这样清理您的 processfile() 函数:

    function processfile(data){
      var array = fs.readFileSync('project.skid', 'utf8').split('
    ');
      for(i in array) {
        console.log(i)
      } 
    }
    

    您的第一个 for 循环已经遍历您的数组 - 无需根据数组长度执行另一个 for 循环

    【讨论】:

    • 妈的我瞎了,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    • 2016-11-27
    • 2021-02-21
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多