1//迴圈組合2
function
generategroup(arr)
17//
當第乙個成員組合完畢,刪除這第乙個成員
18result.shift();19}
20}21//
列印結果
22console.log(result);23}
2425 generategroup([["紅色","藍色"],["x","xl"],["10m","20m"]]);
商品發布規格組合這塊是個很頭疼的問題,畢竟是第一次接觸電商專案開發,公司也沒有大牛帶隊,專案開發成員總共就4個人,什麼專案經驗都沒有的小青年,兩個前端兩個後端,商品發布這塊相對其他頁面比較麻煩,於是商品發布前端後端都被我承包了。。
我們這個專案開發團隊,看起來更像是個研發團隊了,什麼都不懂,什麼都是瞎搞。。哎,也不知道最終是否能開發完成,,
說下我的思路:
開始時建立乙個變數result,並把arr的第乙個陣列成員(arr是乙個二維陣列)賦值給它,然後把result作為基礎依次與後面的陣列成員進行組合,始終以result第0個成員去和目標組合,當組合完畢確定不再使用時移除掉這個下標為0的成員,這樣最終result裡只保留下了有用的資料,這裡有點像是佇列,先進先出的意思。
例如:有資料:
初始化:result=
第n次組合依次...
這個是用遞迴的方式實現的:
1//遞迴組合
2function
generategroup2(arr)21}
22//
返回結果陣列
23return
result;
24 }else28}
2930 console.log(generategroup2([["紅色","藍色"],["x","xl"],["10m","20m","30m"]]));
說下遞迴的思路:
從二維陣列的最後乙個元素開始組合,組合完畢返回給上一層繼續組合,直到第一層遞迴執行完畢返回結果。按陣列的倒序去組合。
例如:有資料:
遞迴遍歷這個資料,如果資料長度大於1則新建變數保留第乙個元素,並移除這個資料中的第乙個元素,傳遞給下一層遞迴,依次類推,直到這個資料的長度只剩下最後乙個成員時,把最後這個成員返回給上層遞迴去組合,上層遞迴組合完畢返回給上上層遞迴組合,一直到第一層遞迴完畢。
調整演算法後加入到專案中的案例:
1//迴圈方式組合
2function
generategroup(arr) 9//
從下標1開始遍歷二維陣列
10for(var i=1;i)
23//
當第乙個成員組合完畢,刪除這第乙個成員
24result.shift();25}
26}27//
轉換字串為json物件
28for(var i=0;i)
31//
列印結果
32console.log(result);
33return
result;34}
35 generategroup([[,],[,],[,]]);
這樣得到的結果是乙個二維陣列:[
[object
, object
, object
], [
object
, object
, object
], [
object
, object
, object
], [
object
, object
, object
], [
object
, object
, object
], [
object
, object
, object
], [
object
, object
, object
], [
object
, object
, object ]]
每個內部陣列對應一行**資料,每乙個物件對應乙個單元格的資料。
另外**前台商品詳情頁的sku組合可參考:**sku組合查詢演算法實現
Vue電商SKU組合演算法問題
前段時間,公司要做 新增商品 業務模組,這也算是電商業務裡面的乙個難點了。令我印象最深的不是什麼 組合商品 關聯商品 關聯單品 而是商品sku的組合問題。這個問題特別有意思,當時雖然大體上組合成功,總是有些小bug解決不了,然後手上又有別的任務就沒仔細研究它。後來過了乙個月,空閒下來專門研究了下,終...
電商多規格選擇演算法
一維規格實現 三維規格選擇實現 skualgorithm一般指代電商專案中商品規格屬性選擇時根據使用者選擇的不同規格屬性,我們需要計算出其他規格是否可選動態的展示給使用者,由此衍生出的sku演算法。舉個例子,比如商品a現有四維規格屬性 顏色 規格id 尺寸 規格id 重量 規格id 規格id 紅色 ...
電商專案 基於json格式完成商品規格引數管理
學習主題 基於json格式完成商品規格引數管理 一對一json itemparamservice 介面新增方法 itemparamserviceimpl 重寫方法 manageritemparamservice介面新增方法 mnageritemparamserviceimpl 實現方法 建立 ite...