我正在为工作中的服务器编写Mocha测试。

我为客户获得了两个潜在的电话号码,至少将定义其中一个。

    var homePhone = result.homePhone;
    var altPhone = result.altPhone;


我想使用下划线的_.sample函数随机选择其中之一。但是,其中之一可能不确定。

所以我当时想的是:

//伪代码

var phone = _.sample([homephone || (doNothing), altphone || (doNothing)]);


_.sample函数如下所示:
http://underscorejs.org/#sample

当然,问题是没有我知道的有条件地向数组添加内容的速记语法。

我想要做的详细方法是:

var phoneArray = [];

if(homePhone){
 phoneArray.push(homePhone);
}
if(altPhone){
 phoneArray.push(homePhone);
}

var phoneSelection = _.sample(phoneArray);


有没有更优雅的方式在JavaScript中执行此操作?

最佳答案

由于您已经在使用下划线,因此建议您使用compact

var phone = _.sample(_.compact([homephone, altphone]));


这基本上是dave答案的简化版本,因为compact实际上是作为function(array) { return _.filter(array, _.identity); }实现的。

关于javascript - JavaScript:有条件地向数组添加内容的简写,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32215178/

10-10 12:53