電商系統 SKU 設計和優化
阿新 • • 發佈:2020-12-21
原文:
https://gitee.com/macrozheng/mall
https://www.cnblogs.com/shensss/p/12989084.html
前言
初步優化
程式碼比較亂
效果
核心程式碼
this.value.skuStockList = []; let skuList = this.value.skuStockList; console.log('sku 規格 選中資料 列印------------------------'); console.log(this.selectProductAttr); // 自定義資料格式 let skuChecked = [];// 選中的sku this.productAttrTableColumn = [];// 商品規格 table列 this.selectProductAttr.forEach((item, index, array) => { if (item.values.length > 0) { this.productAttrTableColumn.push(item); var arrTemp = []; item.values.forEach((item2, index2, array2) => { arrTemp.push({ key: item.name, value: item2 }); }); skuChecked.push(arrTemp); } }); console.log('自定義資料格式--------------') console.log(skuChecked); // 生成sku組合 var cartesianProductOf = function () {// 原文:https://www.cnblogs.com/shensss/p/12989084.html return Array.prototype.reduce.call(arguments, function (a, b) { var ret = []; a.forEach(function (a) { b.forEach(function (b) { ret.push(a.concat([b])); }); }); return ret; }, [[]]); } let allSkuArr = cartesianProductOf(...skuChecked) console.log('所有的sku組合--------------') console.log(allSkuArr) // 新增到 商品sku庫存資訊 allSkuArr.forEach((item, index, array) => { skuList.push({ spData: JSON.stringify(item) }); });