我使用node.js列出txt文件中的项目。我有它从终端打印出来,但我希望它接受更多参数,现在它接受它们但只打印一个(最后一个)我希望它打印参数中的每个项目并列出它们。
// Make sure we got a filename on the command line.
if (process.argv.length < 3) {
console.log('Usage: node ' + process.argv[1] + ' FILENAME');
process.exit(1);
}
// Read the file and print its contents. And split into an array after each space
var fs = require('fs') , filename = process.argv[2];
var array = fs.readFileSync('dependencies.txt').toString().split('\n');
//console.log(array[0]);
if(process.argv.length >= 3){
for(var j = 3; j < process.argv.length; j++)
var test = process.argv[j];
functionName(test);
}
function functionName(test){
for(var i = 0; i < array.length; i++ ){
var pattern = /([^\s]+)/g;
var line = pattern.exec(array[i]);
if(line && test == line[0]){
console.log(array[i]);
}
}
}
//fs.readFile(filename, 'utf8', function(err, data) {
// if (err) throw err;
// console.log('OK: ' + filename);
// console.log(data)
//});
&#13;
答案 0 :(得分:1)
for循环只能包含一个语句,因此如果您需要多个语句,则必须将其包含在block statement中。
(谢谢@paulpro)
我只想为所有for循环添加一个块语句,除非它足够短以便在一行上可读,否则它的可读性更强。
for(var j = 3; j < process.argv.length; j++) {
//var test = process.argv[j];
functionName(process.argv[j]);
}
let len = process.argv.length, j = 3;
for (;j<len;j++) functionName(process.argv[j]);