商品多规格模型构造示例

系统涉及到商品,往往就有规格的存在,一个商品多个规格需要去维护,如何通过js的方式快速构造出商品规格编辑的排列组合?整体思想是逐个规格往下合并的方式,核心js代码如下:

<script type="text/javascript">
function test() {
                    var doubleArrays = [
                        [{valId:"1",valCode:"M",valName:"大码"},{valId:"2",valCode:"L",valName:"小码"}],   //规格1:尺码
                        [{valId:"3",valCode:"R",valName:"红色"},{valId:"4",valCode:"W",valName:"白色"}],  //规格2:颜色
                        [{valId:"5",valCode:"C",valName:"长"},{valId:"6",valCode:"D",valName:"短"}]  //规格3:长度
                    ];
                    var ret = doExchange(doubleArrays);
                    console.log(ret);
                    document.write("共有:" + ret.length + "种组合!<br/>");
                    for (var i = 0; i < ret.length; i++) {
                        document.write(ret[i] + "<br/>");
                    }
                }

                function doExchange(doubleArrays) {
                    var len = doubleArrays.length;
                    if (len >= 2) {
                        var len1 = doubleArrays[0].length;
                        var len2 = doubleArrays[1].length;
                        var newlen = len1 * len2;
                        var temp = new Array(newlen);
                        var index = 0;
                        for (var i = 0; i < len1; i++) {
                            for (var j = 0; j < len2; j++) {
                                temp[index] = {
                                    valId:doubleArrays[0][i].valId + "_" + doubleArrays[1][j].valId,
                                    valCode:doubleArrays[0][i].valCode + "_" + doubleArrays[1][j].valCode,
                                    valName:doubleArrays[0][i].valId + "_" + doubleArrays[1][j].valName
                                };
                                index++;
                            }
                        }
                        var newArray = new Array(len- 1);
                        newArray[0] = temp;
                        if (len > 2) {
                           var _count = 1;
                           for(var i=2;i<len;i++)
                           {
                               newArray[_count] = doubleArrays[i];
                               _count ++;
                           }
                        }
                        console.log(newArray);
                        return doExchange(newArray);
                    }
                    else {
                        return doubleArrays[0];
                    }
                }
      test() ;

      </script>

示例:

时间: 2024-10-23 15:25:30

商品多规格模型构造示例的相关文章

[PHP] 商品类型规格属性后台管理(代码流程备忘)

实现界面 涉及到四张表,type(商品类型表),type_spec(商品类型规格关联表),attribute(商品属性表),attribute_value(商品属性值表) 新建基控制器BaseController.class.php,向上抽取出来的公用方法 BaseController.class.php <?php namespace Admin\Controller; use Think\Controller; class BaseController extends Controller

[电商]商品发布规格组合算法

1 //组合 2 function generateGroup(arr) { 3 //初始化结果为第一个数组 4 var result= arr[0]; 5 //从下标1开始遍历二维数组 6 for(var i=1;i<arr.length;i++){ 7 //使用临时遍历替代结果数组长度(这样做是为了避免下面的循环陷入死循环) 8 var size= result.length; 9 //根据结果数组的长度进行循环次数,这个数组有多少个成员就要和下一个数组进行组合多少次 10 for(var

关于添加商品多规格生成表格的功能实现

最近商品后台需要添加商品多规格的需求,具体是:用户可以自定义规格以及参数,然后再自定义组合规格参数生成商品表单编辑商品信息: 这个功能我做了两次都以失败告终,越做越复杂,在网上看到某位大神的小demo,感觉很好就放出来做参考: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <link rel="stylesheet"

PyTorch 模型构造

记录几种模型构造的方法: 继承Module类来构造模型 Module是所有神经网络模块的基类,通过继承它来得到我们需要的模型,通常我们需要重载Module类的__init__函数和forward函数. 实例 import torch.nn as nn import torch.nn.functional as F class Model(nn.Module): def __init__(self): super(Model, self).__init__() self.conv1 = nn.Co

使用深度双向LSTM模型构造社区问答系统

/* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/ author: 张俊林 关于社区问答系统的问题背景,我们在之前的"利用卷积神经网络构造社区问答系统"一文里已经说明得很清楚,本文就不再赘述,不清楚背景的读者可自行参照上文,我们这些相关的研发工作主要是为了开发畅捷通"会计家园"交流社区的相关功能.为了保持行文完整,简明叙述形式化描述的问题如下: 假设我们已知问答库如下: 其中,Qi是问答社区中的历史问题,Ai是Qi问题的精华答案: 现有社区用户

LVS DR模型配置示例

要让路由知道哪台主机是Director,进行选择: 1.VIP:MAC(Director VIP) -- MAC绑定,但未必可行,例如路由是运营商的. 2.arptables 3.kernel parameter(常用此配置): arp_ignore:定义接收到ARP请求时的响应级别: 0:默认级别,只要本机配置有相应的地址,就给予响应: 1:只有当请求目标地址是请求到达接口上配置的地址,才给予响应: arp_announce:定义将自己的地址向外通告时的通告级别: 0:默认级别,将本机任何接口

LVS NAT模型配置示例

1.LVS-NAT基于Cisco的LocalDirector.VS/NAT不需要在RealServer上做任何设置,其只要能提供一个tcp/ip的协议栈即可,甚至其无论基于什么OS. 2.基于VS/NAT,所有的入站数据包均由Director进行目标地址转换后转发至内部的RealServer,RealServer响应的数据包再由Director转换源地址后发回客户端. 3.VS/NAT模式不能与netfilter兼容,因此,不能将VS/NAT模式的Director运行在netfilter的保护范

利用GBDT模型构造新特征

[本文链接:http://www.cnblogs.com/breezedeus/p/4109480.html,转载请注明出处] 我的博客主营地迁至github,欢迎朋友们有空去看看:https://breezedeus.github.io/,阅读体验好很多. 本文具体内容:https://breezedeus.github.io/2014/11/19/breezedeus-feature-mining-gbdt.html.

VRRP笔记三:配置keepalived为实现haproxy高可用的双主模型配置文件示例:

说明:其基本实现思想为创建两个虚拟路由器,并以两个节点互为主从. ! Configuration File for keepalived global_defs { notification_email { [email protected] [email protected]126.com } notification_email_from [email protected] smtp_connect_timeout 3 smtp_server 127.0.0.1 router_id LVS_