• 简单一个方法实现商品组合管理--递归笛卡尔


    废话不说,先上代码

    <!doctype html>
    <html lang="en">
     <head>
      <meta charset="UTF-8">
      <meta name="Generator" content="EditPlus®">
      <meta name="Author" content="">
      <meta name="Keywords" content="">
      <meta name="Description" content="">
      <title>商品组合笛卡尔乘积演示</title>
      <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.9.0/jquery.js" ></script>
     </head>
     <body>
      <script type="text/javascript">
      
      //笛卡尔乘积递归方法
      function DescartesRecursive(index,list,map,maplist){
        for(var i=0;i<list[index].Attributes.length;i++){
            var item=list[index].Attributes[i];
            var newmap=[];
            newmap.push(item);
            newmap=map.concat(newmap);
            //递归主列表每一个列表值使其相乘,相当于多个for循环嵌套
            if(index<list.length-1){
                DescartesRecursive(index+1,list,newmap,maplist);
            }else{//最后一个列表值,可以组装数据了
            
                maplist.push(newmap);
            }
        }
      }
    
        //定义一个属性组合
        var AttributeList = [{AttributeName:'颜色',Attributes:[{OptionName:'黑色'},{OptionName:'白色'}]},{AttributeName:'内存',Attributes:[{OptionName:'32G'},{OptionName:'64G'}]},{AttributeName:'运营商',Attributes:[{OptionName:'移动'},{OptionName:'联通'}]}]; 
        var mapList=[];
      
        //获得不同属性的笛卡尔乘积
        var result=DescartesRecursive(0,AttributeList,[],mapList);//索引从0开始
    
        //浏览器调试状态打印对象信息
        console.info(mapList);
    
    
      </script>
     </body>
    </html>

    最终成品效果

    后台编辑页面:

    前端效果展示:

    演示demo地址:

    编辑:http://www.guosy.com:88/admin/40 

    展示:http://www.guosy.com:88/detail/40

    以上demo前端采用了jquery1.9和angular1.46,后端用springboot实现,技术交流请联系:微信 westfruit  或QQ 309191428  或邮箱  westfruit@163.com

  • 相关阅读:
    TCP/IP,HTTP,HTTPS,WEBSocket协议
    mysql优化
    PHP基础算法
    php----函数大全
    面试题总结101-)
    扫描一个目录下的所有文件,根据这些文件的创建日期生成一个文件夹,然后把这些文件移入这个文件夹下面
    对执行文件下的文件按照时间
    [合集]解决Python报错:local variable 'xxx' referenced before assignment
    python 函数私有方法
    去哪儿面试题- 一组描述由人组成的网络的测试用例校验是否联通
  • 原文地址:https://www.cnblogs.com/westfruit/p/7485840.html
Copyright © 2020-2023  润新知