我该如何解决这段代码?没有错误可能是错误代码 - javascript(数组、数字、最大值、最小值)

How can i solve this code? no errors probably bad code - javascript (array,numbers,max,min)

我是 javascript 的新手,正在努力完成我的大学作业。

  1. 我需要通过输入(用户自己输入)将 5 个数字放入数组中。
  2. 从该数组中找到最大和最小数字。
  3. 如果数组中至少有 1 个数字大于 0,则将它们除以最大数字, 如果它们较小,则除以最小数。
  4. 在页面上显示答案
  5. 制作改变答案颜色的按钮

我对最大和最小数字有疑问,也无法获得第 3 点。工作。 其他的还可以,至少我是这么认为的。

这个没有错误,但作为答案他只给了我 0,max/min 显示为 +-infinity。

更新: 我在问题下使用了答案并将 max/min 放入 aprekinat() 函数中,但仅在 IF 的前半部分起作用,ELSE 之后的代码不起作用。如果你写 conosle.log(max) 或 min 它表明 max/min 未定义。

function aprekinat() {
  var max = Math.max(...numbers);
  var min = Math.min(...numbers);
  if (numbers => 1) {
    var big = document.getElementById('big');
    var bigger = numbers.map(x => x / max);
    document.getElementById('big').innerHTML = bigger;
  } else {
    var small = document.getElementById('small');
    var smaller = numbers.map(x => x / min);
    document.getElementById('small').innerHTML = smaller;
  }
}

代码:

var numbers = [];

function myFunction() {
  numvalue = parseInt(document.getElementById('num').value);
  numbers.push(numvalue);
  console.log(numbers)
  return false;
}

var max = Math.max(...numbers);
var min = Math.min(...numbers);


document.getElementById('apr').onclick = aprekinat;

function aprekinat() {
  if (numbers => 1) {
    var big = document.getElementById('big');
    var bigger = numbers.map(x => x / max);
    document.getElementById('big').innerHTML = bigger;
  } else {
    var small = document.getElementById('small');
    var smaller = numbers.map(x => x / min);
    document.getElementById('small').innerHTML = smaller;
  }
}


document.getElementById('color').onclick = changeColor;
var currentColor = "black";

function changeColor() {
  if (currentColor == "black") {
    document.body.style.color = "red";
    currentColor = "red";
  } else {
    document.body.style.color = "black";
    currentColor = "black";
  }
}
<html>

<head>
  <title>Ld_js_5</title>
</head>

<body>
  <form onsubmit="return myFunction()">
    <input type="text" id="num">
    <input type="submit" value="Submit">
  </form>


  <p id="big"></p>
  <p id="small"></p>
  <button id="apr">Aprekinat!</button>
  <button id="color">Color!</button>

</body>

</html>

您已经将 min() 和 max() 计算放在任何函数之外,因此当页面加载时数组仍然为空时它们就会立即计算。

他们应该在您按下“Aprekinat!”时进行计算吗?按钮?如果是这样,您需要将第 10 行和第 11 行放在 aprekinat() 函数内的 JavaScript 中,在 if/then 语句之前。这样 minmax 将在您每次计算时重新计算。