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))
想问还有什么更好的方法,因为考虑到后期数据量大的问题
呼如林
相关分类