0
我一直在研究單個元素和對象數組的笛卡爾積。對於單個數組元素,我已經理解了解決方案,但對於我努力實現的對象數組。 例如輸入javascript中的多個對象陣列上的笛卡爾積
cartesianProductOf([{col1:'A'}], [{col2:'B'},{col3:'C'}])
輸出:
[{col1:'A',col2:'B'},{col1:'A',col3:'C'}]
這裏是我正在
function cartesianProductOf() {
return Array.prototype.reduce.call(arguments, function(a, b) {
var ret = [];
debugger;
a.forEach(function(a) {
b.forEach(function(b) {
var r = a.concat([b])
ret.push(r);
});
});
return ret;
}, [[]]);
}
該函數返回該結果
[{col1:'A'},{col2:'B'}],[{col1:'A'},{col3:'C'}]
功能需要指導。
是否有你需要使用reduce的原因? –
我相信這裏真正的笛卡爾積實際上是'{{col1:'A'},{col2:'B'}},{{col1:'A'},{col3:'C'}}'。但是,這不是一個有效的JavaScript構造,因爲JavaScript對象必須是名稱 - 值對。 – nurdyguy