项目未在for循环中推入数组

时间:2015-11-26 06:13:56

标签: javascript

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

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

Line 1
Line 2
Line 3

esStringsesStrings en.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(结果),脚本将永远运行。我做错了什么?

2 个答案:

答案 0 :(得分:2)

在将数据推送到数组时,不要将任何值赋给for循环,用以下代码替换for循环,然后再试一次: -

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

它可能对你有帮助。

答案 1 :(得分:2)

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

另外,请勿指定result = result.push(...。只需执行result.push(即可。它已经添加到数组中了。