// 普通求和
let total = 0
for (let i = 0; i < 11; i++) {
total += i
}
console.log(total);
// 递归求和
function calc(val) {
if (val === 1) return 1
return val + arguments.callee(val - 1)// arguments.callee等于函数本身
}
console.log(calc(10));
<body>
<div class="con"></div>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
<script>
let arr = [
{
name: 'a',
children: [
{
name: 'a-1',
children: [
{
name: 'a-1-1',
children: [
{
name: 'a-1-1-1'
}
]
}
]
},
{
name: 'a-2',
children: [
{
name: 'a-2-1'
}
]
}
]
},
{
name: 'b',
children: [
{
name: 'b-1',
children: [
{
name: 'b-1-1',
}
]
}
]
},
{
name: 'c',
children: [
{
name: 'c-1'
}
]
}
]
// 递归遍历添加
function createMenu(data, con) {
let ul = $('<ul/>')
data.forEach(item => {
let li = $('<li/>').text(item.name)
if (item.children)
arguments.callee(item.children, li)
ul.append(li)
})
con.append(ul)
}
createMenu(arr, $('.con'))
</script>
</body>