Node.js应用程序,编写验证测试。鉴于以下几点:将用例组合使用的数组
var obj = { foo: null, bar: null, baz: null},
values = [ 0, 1];
我需要创建ň占每个属性被分配可能值的每个组合的对象的数量,代表每一个可能的使用情况。因此,对于这个例子,输出应该是对象,例如,
[
{ foo: 0, bar: 0, baz: 0},
{ foo: 0, bar: 1, baz: 0},
{ foo: 0, bar: 1, baz: 1},
{ foo: 0, bar: 0, baz: 1},
{ foo: 1, bar: 0, baz: 0},
{ foo: 1, bar: 1, baz: 0},
{ foo: 1, bar: 1, baz: 1},
{ foo: 1, bar: 0, baz: 1},
]
下划线或lodash或其他库是可以接受的解决方案。理想情况下,我想这样的事情:
var mapUseCases = function(current, remaining) {
// using Underscore, for example, pull the current case out of the
// possible cases, perform logic, then continue iterating through
// remaining cases
var result = current.map(function(item) {
// perform some kind of logic, idk
return magic(item);
});
return mapUseCases(result, _.without(remaining, current));
}
var myValidationHeadache = mapUseCases(currentThing, somethingElse);
请原谅我的伪代码,我想我打破了我的大脑。 ¯\ _(ツ)_ /¯
差不多。你拥有的是每个验证对象的不同参数集。我试图完成的是为每种验证类型设置不同的参数。因此'[foo,bar,baz]'可以使用3个不同的验证参数,而不仅仅是一个。例如:'foo'可以使用'[0,1,2]','bar'使用'[true,false]','baz'可以使用'[true,false,0,1等...] “我可能已经能够更清楚地说明这一点,但在评论栏中进行格式设置。 – kmunky
@kmunky,没问题,请参阅编辑。 –