Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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-使用循环和数组查找最大值和最小值,-Infinity/Infinity_Javascript_Arrays_Loops_Numbers - Fatal编程技术网

Javascript-使用循环和数组查找最大值和最小值,-Infinity/Infinity

Javascript-使用循环和数组查找最大值和最小值,-Infinity/Infinity,javascript,arrays,loops,numbers,Javascript,Arrays,Loops,Numbers,有人能给我解释一下这是怎么回事吗。在求最大数法中,每个数都大于-无穷大。为什么需要最高的数字?和最小数查找器一样,它如何选择最小数,所有的数都小于无穷大 //find highest number var Numbers = [1, 2, 101, 45, 55, 1443]; var l = Numbers.length; var max = -Infinity; var i; for (i = 0; l > i; i++) { if (Numbers[i] > max

有人能给我解释一下这是怎么回事吗。在求最大数法中,每个数都大于-无穷大。为什么需要最高的数字?和最小数查找器一样,它如何选择最小数,所有的数都小于无穷大

//find highest number

var Numbers = [1, 2, 101, 45, 55, 1443];
var l = Numbers.length;
var max = -Infinity;
var i;
for (i = 0; l > i; i++) {

    if (Numbers[i] > max) {

        max = Numbers[i];

    }

}

console.info(max);

//find lowest number

var Numbers = [1, 2, 101, 45, 55, 1443];
var l = Numbers.length;
var max = Infinity;
var i;
for (i = 0; l > i; i++) {

    if (Numbers[i] < max) {

        max = Numbers[i];

    }

}

console.info(max);
//查找最大值
变量数=[1,2,101,45,55,1443];
var l=数字。长度;
var max=-无穷大;
var i;
对于(i=0;l>i;i++){
如果(数字[i]>最大值){
max=数字[i];
}
}
控制台信息(最大值);
//查找最低数量
变量数=[1,2,101,45,55,1443];
var l=数字。长度;
var max=无穷大;
var i;
对于(i=0;l>i;i++){
如果(数字[i]<最大值){
max=数字[i];
}
}
控制台信息(最大值);
钥匙在这里

if (Numbers[i] > max) {

    max = Numbers[i];

}
如果当前数量大于当前最大数量,则我们将其设为最大数量。我们继续,直到我们穿过整个阵列

从-Infinity开始可以确保数组中的任何值都大于或等于它

对于最小值,它是相同的,但我们始终保留列表中找到的最小值

Infinity和-Infinity是javascript提供的值,它们大于或小于任何其他类型的值。你可以找到更多关于他们的信息


你可以调试你的代码,一步一步地准确地看到发生了什么。检查如何在Chrome中执行此操作。

使用控制台,您可以看到当
1
小于
无穷大时,如果
条件仅为true一次,则最低数值
的情况。其他时候它总是返回false,因为所有其他数字都小于
1
,所以这里的逻辑是,如果数组中的数字小于max,那么它的store else循环将继续循环

最高数字也一样

//查找最大值
变量数=[1,2,101,45,55,1443];
var l=数字。长度;
var max=-无穷大;
var i;
对于(i=0;l>i;i++){
如果(数字[i]>最大值){
console.log(i+“最大数量”+数量[i]);
max=数字[i];
}
}
控制台信息(最大值);
//查找最低数量
变量数=[1,2,101,45,55,1443];
var l=数字。长度;
var max=无穷大;
var i;
对于(i=0;l>i;i++){
如果(数字[i]<最大值){
console.log(i+‘最低编号’+编号[i]);
max=数字[i];
}
}

控制台信息(最大值)数组中的数字不是按升序排列的。同样,最小值也使用相同的数组,因此没有任何意义。:)啊,我现在明白了,每次1个循环结束时,max都有新的值,这取决于它是大还是小以及它将改变的箭头方向,调试非常清楚。或者每次尝试打印for循环时的i和max值。:)答案太明显了,我一直盯着它看了这么久,哈哈!非常感谢你清理它;d@JakubMazurkiewicznp,这就是这个网站的目的。查看Sarjan关于如何记录值示例的回答。:)