同学参加笔试跟我交流了一个笔试题,题目大概如下:
将特定的字符串转化为指定的结构化数据,字符串仅由[ ]还有大小写字母组成,且不包含多余的空格
例如:"abc" --> {value:'abc'}
"[abc[df[gh[mk]]]]"--> {value:'abc',children:{value:"df", children:{value:'gh',children:{value:"mk"}}}}
function normalization(str) {
if(!str) return null;
var arr = str.replace(/]/g,"").split('[')
arr.splice(0,1);
//现将字符串处理成数组['abc','df','gh','mk']
var obj={};
Recursion(arr,0,obj)
return obj
}
function Recursion(arr,count,obj){
if(count>=arr.length-1) {
obj.child = {}
obj.child.value=arr[count];
return
};
obj.child = {}
obj.child.value=arr[count];
obj.value =arr[count];
obj.child = obj.child;
Recursion(arr,++count,obj.child)
}