簡體   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