Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:对无限的用法感到困惑_Javascript - Fatal编程技术网

Javascript:对无限的用法感到困惑

Javascript:对无限的用法感到困惑,javascript,Javascript,我在做一些练习题以保持新鲜感,我以前在工作中从未真正使用过Infinity。问题是: 查找给定数组中两个数字之间的最大差值。此外,第二个数字必须大于第一个数字 我的解决办法是: var maxProfit=函数(价格){ 设min=0; 设max=0; 对于(变量x=0;x

我在做一些练习题以保持新鲜感,我以前在工作中从未真正使用过
Infinity
。问题是:

查找给定数组中两个数字之间的最大差值。此外,第二个数字必须大于第一个数字

我的解决办法是:

var maxProfit=函数(价格){
设min=0;
设max=0;
对于(变量x=0;x

但它回来是不正确的,我不知道为什么。在查看已接受的解决方案时,其中一个解决方案的代码与我的代码相同,只是min的初始化值为
无穷
,(
让min=无穷
)而不是
0
。我真的不知道这是怎么回事,也不知道为什么

因为
0
总是小于任何其他正数。因此,除非价格为负,否则最小值为0。您可以将0与任何其他较大的数字(例如1000)交换,即使这样,函数也可能返回错误的最小值,因为数组中的最小值可能只有1001。因此,作为初始值,您可以选择一个数组值(例如,第一个),或者选择大于任何其他数字的无穷大,因此除非数组为空,否则它永远不会是结果。在这种情况下,无穷大是一个恰当的结果