gpt4 book ai didi

javascript - 理解的递归偶数函数问题(Javascript)

转载 作者:数据小太阳 更新时间:2023-10-29 06:01:18 26 4
gpt4 key购买 nike

问题很简单,我有一个来自“Javascript Allonge”书的函数,但很难理解它。

偶数函数调用如下:

var even = function(num) {
return (num === 0) || !(even(num -1));
}

它检查数字是否是偶数,但我不明白如何。它递归地调用自己,从技术上讲,总是达到零,不是吗?它是如何工作的?

最佳答案

这是基于数字是奇数还是偶数的归纳定义 - 一个数字,n 是“偶数”,当它前面的数字 n - 1 是奇数时.这种想法自然是有道理的——4 是偶数,而 3 是奇数。

因此函数 even 定义为:

<强>1。 even(0) 为真 - 因为 0 为偶数

<强>2。 even(n)even(n - 1)

的否定

另一种思考方式是想象 even(4) 被逐步调用。手动将 even(4) 替换为您的函数的评估结果:

even(4)
= !(even(3))
= !(!even(2))
= !(!(!even(1))
= !(!(!(!even(0)))
= !(!(!(!true))
= true


// ...even(4) == true

关于javascript - 理解的递归偶数函数问题(Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32099152/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com