ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

商城系统中商品规格使用笛卡尔积运算

2022-01-29 20:34:06  阅读:182  来源: 互联网

标签:运算 笛卡尔 value arr2 arr1 var 商城 result


商城系统中商品规格使用笛卡尔积运算 - 龚哥哥的博客 - gong.gg https://gong.gg/post-122.html

商城系统中商品规格使用笛卡尔积运算

发表于 2019-9-22 | 前端

/**
 * 笛卡尔积生成规格
 * @author   Devil
 * @blog     http://gong.gg/
 * @version  1.0.0
 * @datetime 2019-09-22T00:33:48+0800
 * @desc     description
 * @param    {[array]}                 arr1 [要进行笛卡尔积的二维数组]
 * @param    {[array]}                 arr2 [最终实现的笛卡尔积组合,可不写]
 */
function SpecCartesian(arr1, arr2)
{
    // 去除第一个元素
    var result = [];
    var temp_arr = arr1;
    var first = temp_arr.splice(0, 1);

    if((arr2 || null) == null)
    {
        arr2 = [];
    }

    // 判断是否是第一次进行拼接
    if(arr2.length > 0)
    {
        for(var i in arr2)
        {
            for(var k in first[0].value)
            {
                result.push(arr2[i]+','+first[0].value[k]);
            }
        }
    } else {
        for(var i in first[0].value)
        {
            result.push(first[0].value[i]);
        }
    }

    // 递归进行拼接
    if(arr1.length > 0)
    {
        result = SpecCartesian(arr1, result);
    }

    // 返回最终笛卡尔积
    return result;
}


// 自动生成规格
var spec = [
    {
        "title": "颜色",
        "value": ["黑色", "白色", "蓝色"]
    },
    {
        "title": "尺码",
        "value": ["S", "M", "L", "XL", "XXL"]
    },
    {
        "title": "长度",
        "value": ["5分裤", "7分裤", "9分裤", "长裤"]
    }
];
var data = SpecCartesian(spec);
console.log(data);

效果图

Image

 

 

标签:运算,笛卡尔,value,arr2,arr1,var,商城,result
来源: https://www.cnblogs.com/rsapaper/p/15855722.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有