Javascript 获取数组作为原始命令行参数

Javascript 获取数组作为原始命令行参数,javascript,arrays,node.js,arguments,Javascript,Arrays,Node.js,Arguments,我试图在Node.js中实现原始命令行参数 当我实现简单变量时,一切都正常 (node example.js variable) 但当我将数组实现为参数时,它就不起作用了 (node example.js "['127.0.0.5', '127.0.0.3']" ) 完整代码: if (process.argv.length <= 3) { console.log("Usage: " + __filename + " SOME_PARAM"); process.exit

我试图在Node.js中实现原始命令行参数

当我实现简单变量时,一切都正常

(node example.js variable)
但当我将数组实现为参数时,它就不起作用了

(node example.js "['127.0.0.5', '127.0.0.3']" )
完整代码:

if (process.argv.length <= 3) {
    console.log("Usage: " + __filename + " SOME_PARAM");
    process.exit(-1);
}

var variable = process.argv[2];
var array = process.argv[3];

console.log('Host: ' + variable);
console.log('array: ' + array);

您将无法传递数组。你必须做的事情(可能是在做的过程中)传递的是一个数组,转换成JSON字符串。


在应用程序中,您只需执行一个简单的操作即可将数组从字符串中取出。

这是一个老问题,但如果有人仍在寻找简单的解决方案,那么它就是

使用相同的名称多次传递命名参数

node example.js --variable=127.0.0.5 --variable=127.0.0.3
使用NPM包将参数提取为:

const parseArgs=require('minimist');
const args=parseArgs(process.argv.slice(2));
console.log(args.variable);
输出:

[ '127.0.0.5', '127.0.0.3' ]
您不能“将其作为数组传递”,但可以解析参数以构建数组。不管发生什么,您都会得到一个字符串,这取决于您是否将其转换为数组。
[ '127.0.0.5', '127.0.0.3' ]