javascript对象多属性值实现笛卡尔积
PHP中文网
PHP中文网 2017-04-11 10:49:58
[JavaScript讨论组]

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

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

PHP中文网
PHP中文网

认证0级讲师

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号