繁体   English   中英

项没有在for循环中被推入数组

[英]Items not being pushed into the array in a for loop

我有树文件en.txt,es.txt和html.txt。 我想将第一个文件中的行用作模式,将第二个文件中的行用作替换。 必须替换的文本在第三个文件(en.text的HTML版本)中。

en.txt和es.txt中的行如下所示:

Line 1
Line 2
Line 3

esStringsesStringsen.textes.txt拆分为数组(在新行上拆分)。

(html.txt相同,但文本周围带有p标签)

这是代码:

fs.readFile('html.txt', 'utf8', function (err, data) {
  var result = []

  if (err) {
    return console.log(err)
  }

  for (i = 0; i < enStrings.length; i++) { 
    console.log(enStrings[i])
    var re = new RegExp(enStrings[i], "g")
    for (i = 0; i < esStrings.length; i++) { 
      result = result.push(data.replace(re, esStrings[i]))
    }
  }

  console.log(result)
})

如果我执行console.log(enStrings[i])我的终端将无限期地返回第2行。 如果我执行console.log(result),脚本将永远运行。 我究竟做错了什么?

只是在将数据推入数组时不分配任何值导致for循环,将以下for循环代码替换为您的代码,然后重试:-

for (i = 0; i < esStrings.length; i++) { 
    result.push(data.replace(re, esStrings[i]));
}

它可能会帮助您。

使用相同的迭代器变量i在嵌套的for循环中存在一个错误。

另外,不要分配result = result.push(...只需执行result.push( 。它已经添加到数组中了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM