我该如何解决这段代码?没有错误可能是错误代码 - javascript(数组、数字、最大值、最小值)
How can i solve this code? no errors probably bad code - javascript (array,numbers,max,min)
我是 javascript 的新手,正在努力完成我的大学作业。
- 我需要通过输入(用户自己输入)将 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>
您已经将 min() 和 max() 计算放在任何函数之外,因此当页面加载时数组仍然为空时它们就会立即计算。
他们应该在您按下“Aprekinat!”时进行计算吗?按钮?如果是这样,您需要将第 10 行和第 11 行放在 aprekinat()
函数内的 JavaScript 中,在 if/then 语句之前。这样 min
和 max
将在您每次计算时重新计算。
我是 javascript 的新手,正在努力完成我的大学作业。
- 我需要通过输入(用户自己输入)将 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>
您已经将 min() 和 max() 计算放在任何函数之外,因此当页面加载时数组仍然为空时它们就会立即计算。
他们应该在您按下“Aprekinat!”时进行计算吗?按钮?如果是这样,您需要将第 10 行和第 11 行放在 aprekinat()
函数内的 JavaScript 中,在 if/then 语句之前。这样 min
和 max
将在您每次计算时重新计算。