有大佬遇到过这个问题吗:一个json对象如何把key换成二位数组的值?各位有什么建议?

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
},
}
梦里花落0921
浏览 349回答 2
2回答

慕少森

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},{}))

POPMUISE

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));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript