//数组长度不固定constspec=[{label:'颜色',content:['红色','黑色','蓝色']},{label:'产地',content:['杭州','贵州','商州']},{label:'尺寸',content:['大号','中号','小号']}];//操作spec得到如下datas,spec0,spec1,spec2是动态对应spec数组的顺序,总共生成27个对象constdatas=[{spec0:'红色',spec1:'杭州',spec2:'大号'},{spec0:'红色',spec1:'杭州',spec2:'中号'},{spec0:'红色',spec1:'杭州',spec2:'小号'},{spec0:'红色',spec1:'贵州',spec2:'大号'},{spec0:'红色',spec1:'贵州',spec2:'中号'},{spec0:'红色',spec1:'贵州',spec2:'小号'},{spec0:'红色',spec1:'商州',spec2:'大号'},{spec0:'红色',spec1:'商州',spec2:'中号'},{spec0:'红色',spec1:'商州',spec2:'小号'}//.....];
2 回答

MYYA
TA贡献1868条经验 获得超4个赞
In[1]:importitertoolsIn[2]:list(itertools.product(['红色','黑色','蓝色'],['杭州','贵州','商州'],['大号','中号','小号']))Out[2]:[('红色','杭州','大号'),('红色','杭州','中号'),('红色','杭州','小号'),('红色','贵州','大号'),('红色','贵州','中号'),('红色','贵州','小号'),('红色','商州','大号'),('红色','商州','中号'),('红色','商州','小号'),('黑色','杭州','大号'),('黑色','杭州','中号'),('黑色','杭州','小号'),('黑色','贵州','大号'),('黑色','贵州','中号'),('黑色','贵州','小号'),('黑色','商州','大号'),('黑色','商州','中号'),('黑色','商州','小号'),('蓝色','杭州','大号'),('蓝色','杭州','中号'),('蓝色','杭州','小号'),('蓝色','贵州','大号'),('蓝色','贵州','中号'),('蓝色','贵州','小号'),('蓝色','商州','大号'),('蓝色','商州','中号'),('蓝色','商州','小号')]

素胚勾勒不出你
TA贡献1827条经验 获得超9个赞
参考pythonitertools.product的实现functionproduct(pools){result=[[]]pools.forEach(pool=>{//python中一行result=[x+[y]forxinresultforyinpool]r1=[]result.forEach(x=>{pool.forEach(y=>{r1.push(x.concat(y))})})result=r1})returnresult}datas=product(spec.map(o=>o.content)).map(o=>{return{"spec0":o[0],"spec1":o[1],"spec2":o[2]}})console.log(datas)
添加回答
举报
0/150
提交
取消