多规格商品都会用到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));