为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

梦里花落0921 2019-09-13 10:01:23
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贡献2019条经验 获得超9个赞

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
},{}))
                            
查看完整回答
反对 回复 2019-09-13
?
POPMUISE

TA贡献1765条经验 获得超5个赞

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));
                            
查看完整回答
反对 回复 2019-09-13
  • 2 回答
  • 0 关注
  • 348 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信