我该如何解决这个代码?没有错误可能是错误代码 - javascript (array,numbers,max,min)

Posted

技术标签:

【中文标题】我该如何解决这个代码?没有错误可能是错误代码 - javascript (array,numbers,max,min)【英文标题】:How can i solve this code? no errors probably bad code - javascript (array,numbers,max,min) 【发布时间】:2021-05-03 21:09:12 【问题描述】:

我是 javascript 新手,正在尝试做我的 uni 作业。

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

我对最大和最小数字有疑问,也无法得到第 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>

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于我该如何解决这个代码?没有错误可能是错误代码 - javascript (array,numbers,max,min)的主要内容,如果未能解决你的问题,请参考以下文章

编译代码时出现此错误,我已从另一个系统复制代码。我该如何解决这个错误?

我该如何解决这个错误无法打开 SSL LIbrary

在 MySQL 上遇到错误代码 1111 我该如何解决?

输入正确的答案会给出错误的输出。我该如何解决?

双向链表 - 是啥导致我的代码引发编译器错误,我该如何解决?

GLSL 错误:无法预处理源。我该如何解决这个问题?