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