在開發商品發布的時候遇到乙個需要求n個陣列所有組合的問題,具體為商品的屬性為乙個陣列,屬性的會有不同,每個屬性的屬性值也不同,可能是0~n個。
舉個例子:假設進了一批手機,手機的屬性如下所示:
執行記憶體:2g、3g、4g、6g
記憶體:32g、64g、128g、256g
顏色:黑色、紅色、白色
如果使用者勾選了執行記憶體 2g 4g ,記憶體32g 、64g、256g,顏色:黑色,紅色。
那麼這個商品理論上會有2*3*2=12種情況。然後分別對這12種錄入**,庫存等。
現在核心編碼問題就是求[2g,4g] [32g,64g,256g] [黑色,紅色]的全排列。這個就像乘法分配律的展開式,先求前兩項的展開,形成新因子於後面項展開。轉化為**可以是
const textarr=[['a','b','c'],['d','e','f','g'],['h','i']]
const getcombination=(array)=>else)
})resultarry=emptyarray
}});
return resultarry;
}console.log(getcombination(textarr))
實際運用效果,勾選商品屬性後,會自動生成所有組合的商品
求從n個陣列任意選取乙個元素的所有組合
最近做專案碰到這個問題,如題從n個陣列任意選取乙個元素的所有組合。比如已知陣列是 1,3 2,4 5 最後組合結果是 1,2,5 1,4,5 3,2,5 3,4,5 網上看了好多帖子,發現寫的太複雜,於是自己動手解決。直接貼解決方案 方法一 執行組合排列的函式 function doexchange...
輸出從n個數中選m個數的所有組合
題目 n個數1,2,n,從這n個數中任意選m個數,輸出所有不同組合,共有c n,m 種不同組合。如n 5,m 3,會產生如下輸出 5 4 3 5 4 2 5 4 1 5 3 2 5 3 1 5 2 1 4 3 2 4 3 1 4 2 1 3 2 1 解題思路1 採用遞迴的方法,終止條件是當m 0時,...
n個陣列實現排列組合
命題場景 現在有一批手機,其中顏色有 白色 黑色 金色 記憶體大小有 16g 32g 64g 版本有 移動 聯通 電信 要求寫乙個演算法,實現 白色 16g 移動 白色 16g 聯通 這樣的組合 陣列排列組合方法 doexchange arr var len arr.length 當陣列大於等於2個...