How to parse nested ul of any depth to nested array keeping ul structure. Example:
<ul>
<li class="operator">operator1</li>
<ul>
<li class="operator">operator2</li>
<ul>
<li class="condition">condition 1</li>
<li class="condition">condition 2</li>
</ul>
<li class="condition">condition3</li>
</ul>
must be parsed to:
[operator1,[operator2,[condition1],[condition2]],[condition3]]
i tried:
const parseListItems = (e) => {
const listItems = e.querySelectorAll('li')
const resultArray = []
listItems.forEach(item => {
const nestedUl = item.querySelector('ul')
if (nestedUl) {
console.log('ul')
const nestedResult = parseListItems(nestedUl)
} else {
console.log('li')
}
})
}
but how to fill the array? The structure is allways [operator[condition/operator,condition/operator]] where condition/operator means condition is just text but operator can be again [operator[condition/operator,condition/operator]] in any depth. Ul have structure accordingly.