2016-09-18 51 views
1

我有一個項目列表,我嘗試爲每個項目調用一個函數。每行都有一個名稱和價格,我試圖將它們設置爲函數的變量。爲txt文件中的每一行執行節點函數

我可以通過項目列出,但我不能分別調用一個函數。這是我的,但無法弄清楚。謝謝!

var readline = require('readline'); 
var rl = readline.createInterface({ 
     input : fs.createReadStream('./items/item.txt'), 
     output: process.stdout, 
     terminal: false 
}) 
rl.on('line',function(line){ 
    console.log(line) //or parse line 
    for(i in line){ 
     //do action! 

    } 
}) 
+1

好了,for-in循環可能[不做你的想法(https://開頭開發商.mozilla.org/EN-US /文檔/網絡/的JavaScript /參考/語句/對...的)。它遍歷一個對象的屬性。 – Li357

回答

0
for(i in line){ 
    //pass 
} 

返回字符串的字符,該行

,如果你的行的格式爲 foobar 1.23,你可以爆炸的空間

rl.on('line', function(line){ 

    var item = line.split(' '); 
    var itemName = item[0]; 
    var itemPrice = item[1]; 
    doAction(itemName, itemPrice); 
}) 

,或者使用與捕獲組

一個RegExp

或者可能使用其他格式;像JSON

每一行
+0

感謝您的迴應,但不是要一次執行操作()?它不需要成爲某種類型的循環嗎?用'on'('line'')調用 – hahu

+0

,爲你的文件的每一行調用回調函數 – hex7c0

0

,你可以在此嘗試wayyou可以嘗試如下:

const items = fs.readFileSync(path.join(__dirname, file), 'utf-8').split('\n'); 

items.forEach((item) => { 
    // do your action 
    let name = item.split('--')[0]; 
    let price = item.split('--')[1] 
}) 
相關問題