[英]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
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(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.