<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 字符串仅由小写字母和 [] 组成,且字符串不会包含多余的空格。
// 示例一: 'abc' --> {value: 'abc'}
// 示例二:'[abc[bcd[def]]]' --> {value: 'abc', children: {value: 'bcd', children: {value: 'def'}}}
function solve(index = 0, arr) {
let length = arr.length;
if (index === length - 1) {
return {
value: arr[index],
};
}
return {
value: arr[index],
children: solve(index + 1, arr),
};
}
function normalize(str) {
// 字符串转化为数组
// 这里需要对`[`进行转义
// Array 类中的 filter 方法使用目的是移除所有的 ”false“ 类型元素
// (false, null, undefined, 0, NaN or an empty string):
let arr = str.split(/[\[\]]/g).filter(Boolean);
console.log(arr);
let result = solve((index = 0), arr);
return result;
}
// let str = "abc";
let str = "[abc[bcd[def]]]";
console.log(normalize(str));
</script>
</body>
</html>
实现一个 normalize 函数,能将输入的特定的字符串转化为特定的结构化数据
最新推荐文章于 2024-01-11 10:56:09 发布