var obj = {
'渠道': ["a", "b"],
'城市': ["邯郸市", "武汉"],
'stage': ["注册", "阶段一", "阶段二", "阶段三"],
‘date’: ["最近7天", "最近14天", "最近28天"]
}
要形成一系列数组如下['a', '武汉','注册','最近七天']
我现在的方式是把对象变成二维数组,然后实现
function cartesianProductOf(obj) {
var test = obj.map(item => item);
return Array.prototype.reduce.call(test,function(a, b) {
var ret = [];
a.forEach(function(a) {
b.forEach(function(b) {
ret.push(a.concat([b]));
});
});
return ret;
}, [[]]);
}
console.log(cartesianProductOf(a))
想问还有什么更好的方法,因为考虑到后期数据量大的问题
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
认证0级讲师