[英]Call a function with an array which holds array of parameters instead of listing just arrays
不好意思的標題,但是我要問的是:
假設您具有以下功能:
function cartesianProductOf() {
return Array.prototype.reduce.call(arguments, function(a, b) {
var ret = [];
a.forEach(function(a) {
b.forEach(function(b) {
ret.push(a.concat([b]));
});
});
return ret;
}, [[]]);
}
應該這樣稱呼:
cartesianProductOf([1, 2, 3], [4], [5, 6], ['a','b']);
我面臨的問題是我創建了一個動態數組,並且基本上有了一個數組,該數組包含應發送給函數的參數,如下所示:
var sets = [[1, 2, 3], [4], [5, 6], ['a','b']];
現在,當然要打個電話:
cartesianProductOf(sets);
不管用。 沒錯,我可以很容易地對此修改cartesianProductOf()函數(僅顯示重要部分):
function cartesianProductOf() {
return Array.prototype.reduce.call(arguments[0], function(a, b) {
但是我想知道在javascript中是否有一種方法可以調用具有sets
變量的cartesianProductOf
,而不必更改cartesianProductOf
的代碼以接受參數[0]? 另外,我希望將標題更改為更合適的名稱(因為我一直在網站上搜索該關鍵字,很顯然這是錯誤的,因為我找不到相關信息)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.