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

有趣数据结构转化,如何实现?

有趣数据结构转化,如何实现?

阿波罗的战车 2019-04-21 20:40:24
原始数据javascriptvarobj={'a':1,'b':2,'c':['x','y','z','j'],'d':['a','c','u'],'e':['e','d']};转化为目标数据javascript[{'a':1,'b':2,'c':'x','d':'a','e':'e'},{'a':1,'b':2,'c':'y','d':'a','e':'e'},{'a':1,'b':2,'c':'z','d':'a','e':'e'},{'a':1,'b':2,'c':'j','d':'a','e':'e'},{'a':1,'b':2,'c':'x','d':'c','e':'e'},{'a':1,'b':2,'c':'y','d':'c','e':'e'},{'a':1,'b':2,'c':'z','d':'c','e':'e'},{'a':1,'b':2,'c':'j','d':'c','e':'e'},{'a':1,'b':2,'c':'x','d':'u','e':'e'},{'a':1,'b':2,'c':'y','d':'u','e':'e'},{'a':1,'b':2,'c':'z','d':'u','e':'e'},{'a':1,'b':2,'c':'j','d':'u','e':'e'},{'a':1,'b':2,'c':'x','d':'a','e':'d'},{'a':1,'b':2,'c':'y','d':'a','e':'d'},{'a':1,'b':2,'c':'z','d':'a','e':'d'},{'a':1,'b':2,'c':'j','d':'a','e':'d'},{'a':1,'b':2,'c':'x','d':'c','e':'d'},{'a':1,'b':2,'c':'y','d':'c','e':'d'},{'a':1,'b':2,'c':'z','d':'c','e':'d'},{'a':1,'b':2,'c':'j','d':'c','e':'d'},{'a':1,'b':2,'c':'x','d':'u','e':'d'},{'a':1,'b':2,'c':'y','d':'u','e':'d'},{'a':1,'b':2,'c':'z','d':'u','e':'d'},{'a':1,'b':2,'c':'j','d':'u','e':'d'},]参数是不定的,varobj1={'a':1,'b':2,'c':['x','y','z','j'],'d':['a','c','u'],'e':['e','d']}varobj2={'a':1,'b':2,'c':['x','y','z','j'],'d':['a','c','u']}varobj3={'c':['x','y','z','j'],'d':['a','c','u']}varobj4={'a':1,'b':2}等等,对象个数没有限制,属性值没有限制(当然,只翻译属性值为数组类型的)
查看完整描述

2 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

javascriptfunctiontransform(obj,keys,index,result){
varkey=keys[index];
varvalue=obj[key];
if(Array.isArray(value)){
varnewObj={};
varnewObj2={};
keys.forEach(function(k){
newObj[k]=k===key?value[0]:obj[k];
newObj2[k]=k===key?value.slice(1):obj[k];
});
if(newObj[key]!==undefined){
transform(newObj,keys,index,result);
}
if(newObj2[key].length>0){
transform(newObj2,keys,index,result);
}
}else{
if(index===keys.length-1){
varret={};
keys.forEach(function(k){
ret[k]=obj[k];
});
result.push(ret);
}else{
transform(obj,keys,index+1,result);
}
}
}
varobj={
'a':1,
'b':2,
'c':['x','y','z','j'],
'd':['a','c','u'],
'e':['e','d']
};
varresult=[];
transform(obj,Object.keys(obj),0,result);
result.forEach(function(o){
console.log('%j',o);
});
                            
查看完整回答
反对 回复 2019-04-21
  • 2 回答
  • 0 关注
  • 290 浏览
慕课专栏
更多

添加回答

举报

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