首页 > 解决方案 > 我没有得到最小值,它显示 0,但是在 Math.max() 的情况下它显示正确的最大值,为什么会这样?

问题描述

我没有得到最小值,它显示为 0,但在 Math.max() 的这种情况下,它显示了正确的最大值。为什么会这样?

function values(ar) {
  var min_val = 0;
  for(var i = 0; i < ar.length; i++) {
    min_val = Math.min(min_val,ar[i]);
  }
  document.write(min_val);
}
values([14,99, 10, 18,19, 11, 34]);

标签: javascriptarrays

解决方案


它总是返回 0,因为您将它与 min_val 进行比较。其中 min_val 成为最小值,因为 0 低于数组中的任何值。因此 min_val 将始终设置为等于自身并保持为 0。这是我的修复:

let ar =[14,99,10,18,19,11,34]
let min_val = Math.min(...ar)
console.log(min_val)
这也比 for 循环更优雅。


推荐阅读