计算sku属性组合

public class TestSku {

        private static String[] aa = { "aa1", "aa2" };
        private static String[] bb = { "bb1", "bb2", "bb3" };
        private static String[] cc = { "cc1", "cc2", "cc3", "cc4" };
        private static String[][] xyz = { aa, bb, cc};
        private static int counterIndex = xyz.length - 1;
        private static int[] counter = { 0, 0, 0 };

        public static void main(String[] args){

            for (int i = 0; i < aa.length * bb.length * cc.length; i++) {
                System.out.print(aa[counter[0]]);
                System.out.print("\t");
                System.out.print(bb[counter[1]]);
                System.out.print("\t");
                System.out.print(cc[counter[2]]);
                System.out.println();

                handle();
            }
        }

        public static void handle() {
            System.out.println("counterIndex:"+counterIndex);
            counter[counterIndex]++;
            if (counter[counterIndex] >= xyz[counterIndex].length) {
                counter[counterIndex] = 0;
                counterIndex--;
                if (counterIndex >= 0) {
                    handle();
                }
                counterIndex = xyz.length - 1;
            }
        }



}

 

 

二:

public class TestSku2 {

    public static void main(String[] args) {
        String str ="1,3,6,7==4,5,8,9==3,4==43,45,8,9==35,4";
        List<String> result = descartes(str);
        System.out.println(result);

    }

//    @SuppressWarnings("rawtypes")
    public static List<String> descartes(String str) {
        String[] list = str.split("==");
        List<List> strs = new ArrayList<List>();
        for(int i=0;i<list.length;i++){
            strs.add(Arrays.asList(list[i].split(",")));
        }
        System.out.println(strs);
        int total = 1;
        for(int i=0;i<strs.size();i++){
            total*=strs.get(i).size();
        }
        String[] mysesult = new String[total];
        int now = 1;
        //每个元素每次循环打印个数
        int itemLoopNum = 1;
        //每个元素循环的总次数
        int loopPerItem =1;
        for(int i=0;i<strs.size();i++){
            List temp = strs.get(i);
            now = now*temp.size();
            //目标数组的索引值
            int index=0;
            int currentSize = temp.size();
            itemLoopNum = total/now;
            loopPerItem = total/(itemLoopNum*currentSize);
            int myindex = 0;
            for(int j=0;j<temp.size();j++){

                //每个元素循环的总次数
                for(int k=0;k<loopPerItem;k++){
                    if(myindex==temp.size())
                        myindex=0;
                    //每个元素每次循环打印个数
                    for(int m=0;m<itemLoopNum;m++){
                        mysesult[index]=(mysesult[index]==null?"":mysesult[index]+",")+((String)temp.get(myindex));
                        index++;
                    }
                    myindex++;

                }
            }
        }
        return Arrays.asList(mysesult);
    }
    protected static List<String> fn(List<Object[]> list, Object[] arr, String result, String separator) {
        //迭代list
        List<String> li = new ArrayList<String>();
        //取得当前的数组
        int i = list.indexOf(arr);
        //迭代数组
        for (Object st : arr) {
            if (StringUtils.isNotBlank(result)) {
                st = result + separator + st;
            }

            if (i < list.size() - 1) {
                li.addAll(fn(list, list.get(i + 1), st.toString(), separator));
            } else if (i == list.size() - 1) {
                li.add(st.toString());
            }
        }

        return li;
    }

}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue是一种流行的JavaScript框架,用于构建用户界面。在使用Vue生成SKU组合table时,我们可以遵循以下步骤: 1. 定义数据结构:首先,我们需要定义用于存储SKU组合的数据结构。可以使用一个数组或对象来存储组合属性值,如颜色、尺寸等。 2. 生成组合:通过循环嵌套的方式,生成所有可能的SKU组合。将组合属性值存储在定义的数据结构中。 3. 渲染表格:使用Vue的数据绑定功能,在HTML模板中渲染SKU组合的表格。可以使用v-for指令来循环遍历组合数据结构,并将组合属性值显示在表格中的对应单元格中。 4. 添加事件处理:如果需要在表格中的某个单元格中添加按钮或其他交互元素,可以使用Vue的事件绑定功能。可以监听按钮点击事件,并执行相应的操作。 5. 样式设计:通过CSS样式对表格进行美化或自定义设计,使其符合项目或产品的需求。 总之,使用Vue生成SKU组合表格的关键是定义合适的数据结构,将生成的组合存储起来,并使用Vue的数据绑定和事件绑定等功能实现表格的渲染和交互设计。这样,我们就可以方便地生成和展示SKU组合表格。 ### 回答2: Vue生成SKU组合Table是指根据一组已知的属性值,生成所有可能的SKU组合,并以Table的形式展示出来。在Vue中,可以通过使用v-for指令来实现此功能。 首先,需要定义一个包含属性属性值的数据结构,例如: ```javascript data() { return { properties: [ { name: '颜色', values: ['红色', '蓝色', '黄色'] }, { name: '尺寸', values: ['S', 'M', 'L'] }, // 其他属性... ], skus: [] // 用于存储生成的所有SKU组合 } }, ``` 然后,可以使用嵌套的v-for指令来生成所有可能的SKU组合,并将其存储在skus数组中: ```javascript methods: { generateSKUCombinations() { const properties = this.properties; const combinations = properties.reduce((acc, property) => { if (!acc.length) { return property.values.map(value => ({ [property.name]: value })); } const newCombinations = []; property.values.forEach(value => { acc.forEach(combination => { newCombinations.push({ ...combination, [property.name]: value }); }); }); return newCombinations; }, []); this.skus = combinations; } }, ``` 最后,在Vue的模板中,可以使用表格标签和v-for指令来展示生成的SKU组合: ```html <table> <tr> <th v-for="property in properties" :key="property.name">{{ property.name }}</th> <th>SKU编码</th> </tr> <tr v-for="sku in skus" :key="sku"> <td v-for="(value, name) in sku" :key="name">{{ value }}</td> <td>{{ generateSKUCode(sku) }}</td> </tr> </table> ``` 在上述模板中,properties的v-for指令用于生成表头,skus的v-for指令用于生成表格内容。另外,可以通过generateSKUCode方法来生成每个SKU组合的编码。 以上就是使用Vue生成SKU组合Table的方法。 ### 回答3: Vue生成SKU组合table是一种常用的电商商品规格选择的实现方式。在电商网站中,商品往往有多个规格可选,比如颜色、尺寸、款式等。而SKU(Stock Keeping Unit)是指商品的唯一标识,每个SKU对应一个具体的商品。生成SKU组合table的目的是为了方便用户选择商品规格,同时展示所有可选的规格组合。 在Vue中实现这个功能,可以采用动态生成表格的方式。首先,需要在Vue的data中定义商品规格的数组,每个规格都包含一个唯一标识和多个选项。然后,在页面中使用v-for指令遍历规格数组,生成规格的选择区域。 当用户选择了某个规格的选项后,需要根据已选择的规格生成SKU组合。可以使用computed属性来实时计算已选择的规格组合。根据已选择的规格,使用v-for指令遍历SKU数组,生成SKU组合的表格。 在生成表格的同时,可以将每个SKU的唯一标识作为value绑定到checkbox或者radio的input上。这样,用户选择某个具体的SKU时,可以通过v-model获取到所选SKU的值。 最后,可以通过监听选择规格的change事件,动态更新已选择的规格组合SKU表格。当用户选择了所有的规格后,可以添加一个添加购物车或立即购买的按钮,将所选SKU加入购物车或跳转到下一步的支付页面。 这样,通过Vue生成SKU组合table,既方便用户选择商品规格,同时也提升了用户体验。同时,通过动态生成表格的方式,可以适应不同商品的规格数量和种类,具有较好的灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值