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))想问还有什么更好的方法,因为考虑到后期数据量大的问题
陪伴而非守候
呼如林
随时随地看视频慕课网APP
相关分类