标签:运算 笛卡尔 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);
效果图
标签:运算,笛卡尔,value,arr2,arr1,var,商城,result 来源: https://www.cnblogs.com/rsapaper/p/15855722.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。