请各位大佬指点!已知二个数组,需要转成一个新得数据十分感谢

constskutitle=[{
label:"颜色",
prop:"val",
},{
label:"尺寸",
prop:"val1",
},
{
label:"形状",
prop:"val2",
},{
label:"规格",
prop:"val3",
}]//表格头
consttableData=[{
val:"红",
val1:"大",
val2:"五边形",
val3:"1*222",
price:"22"
},{
val:"绿",
val1:"大",
val2:"6边形",
val3:"1*2224",
price:"2244"
},{
val:"蓝",
val1:"大",
val3:"1*225",
val2:"八边形",
price:"2244"
}]
constall=[{
'颜色':"蓝",
'尺寸':"大",
'形状':"八边形",
'规格':"1*225",
'价格':"2244"
}]
skutitle数组和tableData数组转成all数组那种数据格式得,目前代码如下
functionarrayList(skutitle,tableData){
varresult=[]
for(leti=0;ivarcol_label=skutitle[i].label
varcol_prop=skutitle[i].prop
varobj={}
for(letj=0;jconsole.log(tableData[j])
varitems=[]
for(letkeyintableData[j]){
if(skutitle[i].prop===key){
obj[skutitle[i].label]=tableData[j][key];
console.log(obj,'obj')
//items.push(obj)
}
}
console.log(items,"items")
result.push(items)
}
}
console.log(result,'77')
}
arrayList(skutitle,tableData)
通过打印是key值判断那边有点问题,没有思路了
慕容3067478
浏览 300回答 2
2回答

沧海一幻觉

你的表格头数据差一个价格,实现的方法如下,你看能否符合你的预期:constsku2Obj=skutitle.reduce((total,cur)=>{total[cur.prop]=cur.label;returntotal;},{});constall=tableData.reduce((result,cur)=>{letobj=Object.keys(cur).reduce((buffResult,buffCur)=>{buffResult[sku2Obj[buffCur]]=cur[buffCur];returnbuffResult;},{});result.push(obj);returnresult;},[]);console.log(all);

繁星coding

functiontransform(tableData,skutitle){returntableData.map(data=>{constkeys=Object.keys(data);constnewKeys=keys.map(key=>getLabelByProp(key,skutitle));constnewData={};newKeys.forEach((key,i)=>{newData[key]=data[keys[i]];});returnnewData;});functiongetLabelByProp(prop,skutitle){for(leti=0;i
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript