JS笛卡尔积运算---商品规格组合(个人笔记)

1,037 阅读1分钟

最近在写商品后台,需要添加多sku商品,记录下自我感觉良好简便的方法。 基于笛卡尔积运算,进行商品多规格组合。

```// 接收一个spec[['小马哥', '大马哥','老马哥'],['产品','测试','研发'],['加班', '不加班','通宵'],...]
        cartesianProductOf(...args) {
          return args.reduce(
            (total, current) => {
              let ret = [];
              total.forEach((a) => {
                current.forEach((b) => {
                  ret.push(a.concat([b]));
                });
              });
              return ret;
            },
            [[]]
          );
        },
// 输出:['小马哥', '产品','加班']...(其中省略你猜几个规格数组).....['老马哥', '研发','通宵']