Javascript 将数组传递给具有条件的方法

Javascript 将数组传递给具有条件的方法,javascript,arrays,node.js,Javascript,Arrays,Node.js,我正在使用下面的代码拆分正在工作的数组, 我需要在数组中传递一些值 例如,此处将值拆分为数组 var myArr = val.split(/(\s+)/); 如果array in place 2为空,我需要使用如下方法 在第二个参数中传递空数组 var val = process.run(myArr[0], [], options); 如果数组位置2不是空的,我需要像下面这样传递它 var val = process.run(myArr[0], [myArr[2]], options);

我正在使用下面的代码拆分正在工作的数组, 我需要在数组中传递一些值

例如,此处将值拆分为数组

var myArr = val.split(/(\s+)/);
如果array in place 2为空,我需要使用如下方法 在第二个参数中传递空数组

  var val = process.run(myArr[0], [], options);
如果数组位置2不是空的,我需要像下面这样传递它

var val = process.run(myArr[0], [myArr[2]], options);
第二个参数是arry中的数组,值为2


有一种很好的方法可以代替方法中的if?

我将创建一个函数,如下所示。我可以将初始的
val
options
作为参数,并返回
过程的结果。运行

function runProcess(val, options) {
    var myArr = val.split(/(\s+)/);
    var argArray = [];
    if(myArr[2]) {
        argArray.push(myArr[2]);
    }
    return process.run(myArr[0], argArray, options);
}

因为我不知道函数到底做什么,所以函数和变量的名称非常随意。请根据您的需要随意更改它们。

如果
myArr[2]
是平面阵列,并且始终是平面阵列,为什么不

var val = process.run(myArr[0], [].concat(myArr[2]), options);

myArr[2]有什么问题?长度>0?[myArr[2]]:[]
?我可能会将此功能放在方法本身或助手中。这样,您就不必分离函数必须具有的逻辑才能正确运行,也不必记得在主线代码中这样做。@DaveNewton-不确定我是否了解您的意思,您可以提供示例吗?@Dalorzo-您的意思是在函数参数内吗?你能提供完整的例子作为答案吗,我会试试看……什么是
过程。运行
函数?从OP-
myArr
是拆分的结果,所以它是字符串数组,如果
myArr[2]
是空字符串,你会传递
[“”]
,而不是
[]
在OP中的哪个位置?我知道他在哪里说,如果
myArr[2]
为空,那么数组为空。
var myArr=val.split(/(\s+/)我想这里很清楚:-)对不起,还是不明白。在您的第一条评论中,您是说OP是说当
myArr[2]
为空时,他希望传递
[”“]
而不是
[]
?如果是这样的话,那么我仍然不明白他在说什么。不:-)我的意思是,如果
myArr[2]
是空字符串,那么你,即你的代码,通过
[“”]
。但是OP预期这将被传递
[]