Javascript 为什么我会得到额外的'';在本例中处理我的字符串时?

Javascript 为什么我会得到额外的'';在本例中处理我的字符串时?,javascript,node.js,return,line,feed,Javascript,Node.js,Return,Line,Feed,在nodejs中练习I/O时,我尝试处理包含以下行的文本文件: { date: 2018-02-16T16:55:35.296Z, _id: 5a870d074dfade27c4c0ce35, id: '5546721 我一行一行地选择了npm包,最初我有自己的代码: let numbers = ''; const lr = new LineByLineReader('./resources/4501-ids.txt'); lr.on('line', function (line) {

在nodejs中练习I/O时,我尝试处理包含以下行的文本文件:

{ date: 2018-02-16T16:55:35.296Z, _id: 5a870d074dfade27c4c0ce35, id: '5546721
我一行一行地选择了npm包,最初我有自己的代码:

let numbers = '';
const lr = new LineByLineReader('./resources/4501-ids.txt');
lr.on('line', function (line) {
    let x = line.lastIndexOf("'");
    let y = line.substring(x+1);          
    numbers += y + ', ';
    console.log(y);
    count++;
});

lr.on('end', function () {
    numbers = numbers.substring(0, numbers.lastIndexOf(', '));
    res.send(numbers);
});
我被期望得到

2345, 23465, 66435, 
但我有:

2345, , 23465, , 66435, 
我怀疑它在某种程度上是一个回车符,所以我尝试通过像if(y==“\r\n”)一样提取它,但没有运气,最后将一行更改为:

if(y)
  numbers += y + ', ';

成功了。我已经完成了,但是是什么使行加倍并可能起到回车作用呢?

您的文本文件内容有点不清楚(内容不完整+输出与您提到的行不匹配)。但有了预期的输出,您可以将代码更改为

let numbers = [];
const lr = new LineByLineReader('./resources/4501-ids.txt');
lr.on('line', function (line) {
    let x = line.lastIndexOf("'");
    let y = line.substring(x+1);          
    numbers.push(y);
    console.log(y);
    //count++; //this is not needed numbers.length will give you this
});

lr.on('end', function () {
   // numbers = numbers.substring(0, numbers.lastIndexOf(', '));
    res.send(numbers.toString());
});

除此之外,如果资源文件的内容是json,您只需导入/需要它,就可以得到json对象,而无需逐行处理。

好的,文件的内容就是:用不同的数字重复这一行。我只是在胡闹和练习。我使用nodepad从数字的末尾截断了每一行,以便逐行进行此练习。谢谢,我得到了我一直在寻找的答案,但仍然不明白为什么会重复!