gpt4 book ai didi

javascript - Node.js 为什么一次只打印一个

转载 作者:行者123 更新时间:2023-12-03 07:39:28 28 4
gpt4 key购买 nike

我使用 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)
//});

how it prints out

最佳答案

一个 for 循环只能包含一个语句,因此如果您需要多个语句,则必须将其包装在 block statement 中。 .
(感谢@paulpro)

我只是为所有 for 循环添加一个 block 语句,这样更具可读性,除非它足够短以至于可以在一行中读取。

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]);

关于javascript - Node.js 为什么一次只打印一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35468009/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com