页面结构如下
`
<ul>
<li>
1
<ul>
<li>1-1
<ul>
<li>
1-1-1
</li>
</ul>
</li>
<li>1-2
<ul>
<li>
1-2-1
<ul>
<li>
1-2-1-1
</li>
<li>
1-2-1-2
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
2
<ul>
<li>2-1
<ul>
<li>
2-1-1
</li>
</ul>
</li>
<li>2-2</li>
</ul>
</li>
</ul>
`
需要生成的数组
`
[{
t: '1',
child: [{
t: '1-1',
child: [{
t: '1-1-1'
}]
}, {
t: '1-2',
child: [{
t: '1-2-1',
child: [{
t: '1-2-1-1'
}, {
t: '1-2-1-2'
}]
}]
}]
},{
t: '2',
child: [{
t: '2-1',
child: [{
t: '2-1-1'
}]
}, {
t: '2-2',
child: [{
t: '2-2-1',
child: [{
t: '2-2-1-1'
}, {
t: '2-2-1-2'
}]
}]
}]
}]
`
在JavaScript中,我们可以使用递归的方式来生成数组。以下是一个简单的例子:
```javascript function arrayGenerator(arr) { let result = []; for(let i = 0; i < arr.length; i++) { result.push(arrayGenerator(arr.slice(i))); } return result; }
let arr = [1, 2, 3, 4, 5]; console.log(arrayGenerator(arr)); // 输出: [1, 2, 3, 4, 5] ```
在这个例子中,arrayGenerator
函数接收一个数组作为参数,然后使用一个循环来生成所有可能的子数组。每次循环,都会生成一个新的子数组,并将其添加到结果数组中。最后,函数返回结果数组。
注意,这个函数是递归的,也就是说,它会一直调用自己,直到它遇到基本情况(即数组的长度为1或0)。在循环内部,这个基本情况被处理掉了,所以我们不需要在循环内部处理它。