题目:
字符串仅由字母和[,]构成,且字符串不包含多余的空格
示例一:'abc' -> {value:'abc'}
示例二:'[abc[bcd[def]]]' -> {value:'abc',children:{value:'bcd',children:{value:'def'}}}
解决问题:
function normalize(str) {
let obj = {}
if (str.indexOf('[') == -1) {
//判断两种字符串,并分别处理
obj.value = str
return obj
} else {
let parts = str.split('[')
parts.shift() //生成的数组中,第一个元素为空,删除
obj.value = parts[parts.length - 1].slice(0, parts.length) //倒着 加到obj中
parts.pop() //加完 删除数组中最后一个
for (let i = parts.length - 1; i >= 0; i--) {
obj = handleArr(parts, obj)
parts.pop()
}
return obj
}
}
function handleArr(arr, obj) {
let o = {}
o.value = arr[arr.length - 1]
o.children = obj
return o
}
console.log(normalize('abc'))
console.log(normalize('[abc[bcd[def]]]'))