递归应用

快速排序就是递归思想实现的。

1到n之间不能被2整除的数的积

function caculate(n) {
    if (n === 1) return 1;
    if (n % 2 === 0) return caculate(n -1);
    return n * caculate(n - 1)
}

var total = caculate(10);
console.log(total)

1 - 100 之间不能被3整除的数之和

function excute(n) {
    if (n === 1) return 1;
    if (n % 3 === 0) return excute(n - 1);
    return n + excute(n - 1)
}
var total = excute(100);
console.log(total)

通过setTimeout实现setInterval功能

利用递归调用自身,比setInterval更易控制

var timer = null;
var count = null;
function events() {
    window.clearTimeout(timer); // 清除上一次定时器
    count++;
    console.log(count);
    if (count === 3) { // 控制递归结束
        console.log('结束');
        return;
    }
    timer = setTimeout(events, 1000);
}
posted @ 2017-06-08 20:48  Juphy  阅读(142)  评论(0编辑  收藏  举报