数组[a,b,c,d]如何递归成a:{b:{c:{d:"test"}}}

vartest="a.b.c.d"
如何递归成
a:{
b:{
c:{
d:"test"
}
}
}
叮当猫咪
浏览 608回答 2
2回答

倚天杖

循环算法: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);

撒科打诨

vartest="a.b.c.d"constrecur=(objkey,test)=>(f=arr=>arr.length?{[arr.shift()]:f(arr)}:test)(objkey.split('.'))console.log(recur(test,'test'))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript