1

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))

想问还有什么更好的方法,因为考虑到后期数据量大的问题

1个回答

0

666666

该答案已被忽略,原因:无意义的内容,赞、顶、同问等毫无意义的内容

撰写答案