如何解析js数组,其形式类似于:
const arr = [
"&&",
[
"==",
"first",
"1-1"
],
[
"&&",
[
"==",
"second1",
"2-1"
],
[
"==",
"second2",
"2-2"
]
]
]
到HTML无序(ul)列表,格式为:
<ul>
<li>&&
<ul>
<li>first == 1-1</li>
<li>&&
<ul>
<li>second1 == 2-1</li>
<li>second2 == 2-2</li>
</ul>
</li>
</ul>
</li>
</ul>
Arr总是以[运算符,条件/子函数]的形式出现。
正如你所猜测的,我需要一个UI来编辑arr内容。Arr表示JSON字符串中“where”过滤器定义的形式。所以,当用户更改列表(在无序列表中添加或删除节点)时,我需要将更改解析回数组,但首先要做的是。
也许那里有图书馆,但我找不到。
我尝试过这样的递归:
function arrayToHTML(arr, container) {
if (!Array.isArray(arr) || arr.length === 0) return
const operator = arr[0]
const conditions = arr.slice(1)
if (operator === '&&') {
this.arrayToHTML(conditions, container)
}
}