首先这篇文章得仔细看,上面是我出的第一版本多规格算法可以去看一下思路
算法版本升级
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)