(B站一博主保姆级理解)笛卡尔积生成商品SKU__揽的博客-CSDN博客
首先这篇文章得仔细看,上面是我出的第一版本多规格算法可以去看一下思路
算法版本升级
1.使用map函数生成笛卡尔积
let arr = [
['红色', '黑色', '白色'],
['16G', '32G'],
['移动版', '联通版'],
]
let result=[[]]
arr.map(x=>{
var res=[]
result.map(y=>{
x.map(z=>{
res.push([...y,z])
})
})
result=res
})
console.log(result)
2.生成对象形式的笛卡尔积(这种形式常用与elementui)方便简单
let newArr = [{
name: 'color',
data: ['红色', '黑色', '白色'],
},
{
name: 'size',
data: ['16G', '32G'],
},
{
name: 'banben',
data: ['移动版', '联通版'],
}
]
let result=[{}]
newArr.map(x=>{
let res=[]
result.map(y=>{
x.data.map(z=>{
res.push({...y,[x.name]:z})
})
})
result=res
})
console.log(result)