我有树文件en.txt,es.txt和html.txt。我想将第一个文件中的行用作模式,将第二个文件的行用作替换。必须替换的文本位于第三个文件(en.text的HTML版本)中。
en.txt和es.txt中的行如下所示:
Line 1
Line 2
Line 3
esStrings
和esStrings
en.text
和es.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(结果),脚本将永远运行。我做错了什么?
答案 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(
即可。它已经添加到数组中了。