前端生成多规格算法

最近几天公司在折腾自定义商城,又涉及到商品多规格这块,之前的商品多规格在网上看到的都是矩阵式的,自己瞎写了一套出来,虽然能用但是看起来感觉有点恶心。然后自己科学上网找ChatGPT,给了一个递归写法,代码简洁,逻辑清晰,记录一下以后用到再翻。

        function generateSpecs(specs, keys, result, currentSpecs) {
            if (keys.length === 0) {
                result.push(currentSpecs);
                return;
            }

            const currentKey = keys[0];
            const values = specs[currentKey];
            
            for (let i = 0; i < values.length; i++) {
                const newSpecs = {
                    ...currentSpecs
                };
                newSpecs[currentKey] = values[i];
                
                generateSpecs(specs, keys.slice(1), result, newSpecs);
            }
        }

        const specs = {
            尺码: ['S', 'M', 'L'],
            颜色: ['红色', '蓝色', '绿色'],
            套餐: ['套餐A', '套餐B'],
            型号: ['型号A'],
        };

        const keys = Object.keys(specs);
        const result = [];

        generateSpecs(specs, keys, result, {});

        console.log(result);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值