js实现sku组合排序算法

1,766 阅读1分钟

多规格商品都会用到sku, js实现sku组合算法

效果图

第一种写法

let arr = [
  ["大杯", "中杯"],
  ["全糖", "七分"],
  ["去冰", "少冰", "正常冰"]
];
const getSkuData = arr => {
  let res = [[]];
  arr.map(item => {
    let s = [];
    res.map(v => {
      item.map(ele => {
        s.push(v.concat(ele));
      });
    });
    res = s;
  });
  return res;
};
console.log(getSkuData(arr));

第二种 用reduce实现

let arr = [
  ["大杯", "中杯"],
  ["全糖", "七分"],
  ["去冰", "少冰", "正常冰"]
];
/**
 * reduce函数
 * 第一个参数是回调函数(oldItem,item)
 * 第二个参数是回调函数第一次的oldItem
 */
const getSkuData = arr => {
  let ret = arr.reduce((oldItem, item) => {
      let res = [];
      oldItem.map(v => {
        item.map(ele => {
          res.push(v.concat(ele));
        });
      });
      return res;
    }, [[]]);
  return ret;
};
console.log(getSkuData(arr));