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,沒問題,請參閱編輯。 –