技术交流QQ群:1027579432,欢迎你的加入!
欢迎关注我的微信公众号:CurryCoder的程序人生
1.递归
- 如果一个函数在内部可以调用其本身,那么这个函数就是递归函数。简单理解:函数内部自己调用自己,这个函数就是递归函数。
- 递归函数的作用和循环效果一样,由于递归很容易发生栈溢出错误,所以必须要加退出条件return。
2.利用递归求某个数的阶乘
```javascript
<script>
var str = prompt('请输入一个整数: ');
var num = parseInt(str);
function fn(n){
if(n == 1) return 1; // 递归终止条件
return n * fn(n - 1);
}
alert(fn(num));
</script>
```
3.利用递归求斐波那契数列
```javascript
<script>
var s = prompt('请输入一个整数: ');
var num = parseInt(s);
function fb(n){
if(n == 1 || n == 2){
return 1;
}
return fb(n-1) + fb(n-2);
}
alert(fb(num));
</script>
```
4.利用递归遍历数据
```javascript
<script>
var data = [{
id: 1,
name: '家电',
goods: [{
id: 11,
gname: '冰箱',
goods: [{
id: 111,
gname: '海尔'
}, {
id: 112,
gname: '美的'
}]
}, {
id: 12,
gname: '洗衣机'
}]
}, {
id: 2,
name: '服饰'
}];
// 输入id号,就可以返回数据对象
// 利用forEach遍历数组中的每一个对象
function getID(json, id) {
var res = {};
json.forEach(function (item) {
// console.log(item); // 2个数组元素
if (item.id == id) {
// console.log(item);
res = item;
return item;
// 想要得到里面的数据11和12,可以利用递归函数
} else if (item.goods && item.goods.length > 0) {
res = getID(item.goods, id);
}
})
return res;
}
console.log(getID(data, 1));
console.log(getID(data, 12));
console.log(getID(data, 111));
</script>
```
5.资料下载
网友评论