最近在写商品后台,需要添加多sku商品,记录下自我感觉良好简便的方法。 基于笛卡尔积运算,进行商品多规格组合。
```// 接收一个spec[['小马哥', '大马哥','老马哥'],['产品','测试','研发'],['加班', '不加班','通宵'],...]
cartesianProductOf(...args) {
return args.reduce(
(total, current) => {
let ret = [];
total.forEach((a) => {
current.forEach((b) => {
ret.push(a.concat([b]));
});
});
return ret;
},
[[]]
);
},
// 输出:['小马哥', '产品','加班']...(其中省略你猜几个规格数组).....['老马哥', '研发','通宵']