Javascript 有人能解释一下这是怎么找到最大值的吗?

Javascript 有人能解释一下这是怎么找到最大值的吗?,javascript,Javascript,我看到它在myArray中循环并检查maxValue是否等于null,它是什么?或者,如果maxValue小于当前数组元素,那么它也是?然后将maxValue指定给for循环中的当前数组元素。如何找到最大的数字?看起来很简单,但我看不出它是如何找到最大整数的…让我们反复讨论这个问题。我们已将maxValue变量设置为null。在第一次迭代中,maxValue将保存myArray[0]的值,即1。它将在下一次迭代中将1与myArray[1]进行比较。由于myArray[1]大于maxValue,因

我看到它在myArray中循环并检查maxValue是否等于null,它是什么?或者,如果maxValue小于当前数组元素,那么它也是?然后将maxValue指定给for循环中的当前数组元素。如何找到最大的数字?看起来很简单,但我看不出它是如何找到最大整数的…

让我们反复讨论这个问题。我们已将maxValue变量设置为null。在第一次迭代中,maxValue将保存myArray[0]的值,即1。它将在下一次迭代中将1与myArray[1]进行比较。由于myArray[1]大于maxValue,因此maxValue的值为12。现在所有其他组件都小于maxValue,并且maxValue不再为null。因此,迭代结束时maxValue的值将为12。

将初始值替换为0并删除空测试使其更易于读取。添加console.log可以跟踪循环的执行

var myArray=[1,12,3,5,6]; var maxValue=0; 对于var i=0;i//显示12更好的方法是直接使用第一个值并从第二个索引进行迭代,而不使用像null这样的占位符,这需要在每次迭代中检查该值,或者使用-Infinity检查真正的小值

变量数组=[1,12,3,5,6], max=数组[0], 我 对于i=1;i<数组长度;i++{ 如果最大值<数组[i]{ max=数组[i]; } }
console.logmax;添加一个console.logmaxValue;在for循环中查看其工作原理。它将根据实际值检查最后一个最大值。在开始时,它检查空值并分配实际值,无需进一步检查。为什么它返回12?我没有看到任何console.log或类似的内容。您的控制台正在隐式计算maxValue的最后一个值。代码不返回任何内容。尝试在代码执行后键入myArray。是否确定没有更多代码?它不可能在这里打印12…感谢您的帮助,将maxValue设置为null与0有什么意义吗?是的!如果你的数组只有负数,你会得到一个错误的答案。结果的类型不同于0和nullI,就像这个想法,很好!非常感谢。按占位符你指的是空的对吗?对,请看上面也许你需要刷新页面。。。。
var myArray = [1, 12, 3, 5, 6];
var maxValue = null;
for (var i = 0; i < myArray.length; i++) {
    if (maxValue === null || maxValue < myArray[i]) {
        maxValue = myArray[i];
    }
}
// shows 12