博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js实现的笛卡尔乘积-商品发布
阅读量:5094 次
发布时间:2019-06-13

本文共 1582 字,大约阅读时间需要 5 分钟。

//笛卡儿积组合function descartes(list){    //parent上一级索引;count指针计数    var point  = {};     var result = [];    var pIndex = null;    var tempCount = 0;    var temp   = [];     //根据参数列生成指针对象    for(var index in list)    {        if(typeof list[index] == 'object')        {            point[index] = {'parent':pIndex,'count':0}            pIndex = index;        }    }     //单维度数据结构直接返回    if(pIndex == null)    {        return list;    }     //动态生成笛卡尔积    while(true)    {        for(var index in list)        {            tempCount = point[index]['count'];            temp.push(list[index][tempCount]);        }         //压入结果数组        result.push(temp);        temp = [];         //检查指针最大值问题        while(true)        {            if(point[index]['count']+1 >= list[index].length)            {                point[index]['count'] = 0;                pIndex = point[index]['parent'];                if(pIndex == null)                {                    return result;                }                 //赋值parent进行再次检查                index = pIndex;            }            else            {                point[index]['count']++;                break;            }        }    }}//该代码片段来自于: http://www.sharejs.com/codes/javascript/7013var aa=[1,2,3],bb=[1,2,3],cc=[1,2,3],dd=[1,2,3];var zz=[aa,bb,cc,dd];//此处数组个数任意var selectSpec = [ ['16G','64G','128G'] , ['土豪金','银色','黑色','pink'],['联通3G存费送餐','联通4G存费送餐','联通2G存费送餐'], ['76元套餐','106元套餐','206元套餐']]; var result=descartes(selectSpec);console.log(result);document.write(result);

 移宝网的实现 思路

转载于:https://www.cnblogs.com/yuri2016/p/5294914.html

你可能感兴趣的文章
EOS生产区块:解析插件producer_plugin
查看>>
排球积分程序(三)——模型类的设计
查看>>
HDU 4635 Strongly connected
查看>>
格式化输出数字和时间
查看>>
页面中公用的全选按钮,单选按钮组件的编写
查看>>
java笔记--用ThreadLocal管理线程,Callable<V>接口实现有返回值的线程
查看>>
(旧笔记搬家)struts.xml中单独页面跳转的配置
查看>>
不定期周末福利:数据结构与算法学习书单
查看>>
strlen函数
查看>>
关于TFS2010使用常见问题
查看>>
URL编码与解码
查看>>
Eclipse 安装SVN插件
查看>>
阿里云服务器CentOS6.9安装Mysql
查看>>
剑指offer系列6:数值的整数次方
查看>>
js 过滤敏感词
查看>>
poj2752 Seek the Name, Seek the Fame
查看>>
软件开发和软件测试,我该如何选择?(蜗牛学院)
查看>>
基本封装方法
查看>>
生活大爆炸之何为光速
查看>>
[Typescript] Specify Exact Values with TypeScript’s Literal Types
查看>>