2015-11-26 31 views
0

我有樹文件en.txt,es.txt和html.txt。我想將第一個文件中的行用作模式,將第二個文件的行用作替換。必須替換的文本位於第三個文件(en.text的HTML版本)中。沒有被壓入for循環的數組中的項目

在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(結果)腳本永遠運行。我究竟做錯了什麼?

+0

嘗試更改分配線時推新項目只使用推功能。在陳述結尾處添加分號可幫助確保語句之間不存在錯誤。 – CalebB

+0

您正在使用變量「我」 - 兩次。嘗試將其改爲例如「x」和「y」 –

回答

2

在嵌套的for循環中使用相同的迭代器變量i有一個錯誤。

另外,請勿指定result = result.push(...。只需執行result.push(。它已經添加到陣列了。

2

只是沒有分配任何價值,導致for循環,而你把數據分成數組,替換下了與你的循環代碼,然後再試一次: -

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

它可以幫助你。