2016-09-18 58 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] 
}) 
相关问题