constarr=[[1,2],[3,4]]constjson={a:{xx:5,yy:6},b:{...}}//把json的第二级的key换成二维数组的值,第一级json.a对应arr[0]//json第一级数量和arr长度相等的主要是换第二级的key//结果如下json={a:{1:5,2:6},}
2 回答
跃然一笑
TA贡献1826条经验 获得超6个赞
console.log(arr.reduce((temp,item,index,arr)=>{Object.keys(json).forEach((k1,i1)=>{if(!temp[k1])temp[k1]={}Object.keys(json[k1]).forEach((k2,i2)=>{!temp[k1][arr[i1][i2]]?temp[k1][arr[i1][i2]]=json[k1][k2]:null})})returntemp},{}))
幕布斯7119047
TA贡献1794条经验 获得超8个赞
functiontransform(obj,arr){if(obj&&typeofobj==="object"&&Array.isArray(arr)){vari=0;for(varkeyinobj){if(i===arr.length)break;varval=obj[key],item=arr[i++],j=0;for(var_keyinval){if(j===item.length)break;val[item[j++]]=val[_key];deleteval[_key];}}}returnobj;}console.log(transform(json,arr));
添加回答
举报
0/150
提交
取消