vartest="a.b.c.d"如何递归成a:{b:{c:{d:"test"}}}
2 回答
倚天杖
TA贡献1828条经验 获得超3个赞
循环算法:vartest="a.b.c.d";varret="test";vararr=test.split(".");do{varkey=arr.pop();varobj={};obj[key]=ret;ret=obj;}while(arr.length);console.log(ret);递归算法:vartest="a.b.c.d";vararr=test.split(".");vari=arr.length;varret=(functionmerge(val){if(i--){varobj={};obj[arr[i]]=val;val=obj;returnmerge(val);}elsereturnval;})("test");console.log(ret);
撒科打诨
TA贡献1934条经验 获得超2个赞
vartest="a.b.c.d"constrecur=(objkey,test)=>(f=arr=>arr.length?{[arr.shift()]:f(arr)}:test)(objkey.split('.'))console.log(recur(test,'test'))
添加回答
举报
0/150
提交
取消