繁体   English   中英

如何使用1个文本框在空数组上添加5个数字?

[英]How can I add 5 numbers on a empty array using 1 textbox?

我想使用一个文本框将五个数字输入数组。 并找到最大数量,然后单击结果按钮将其打印出来。 当我单击添加按钮时,我想一一输入一个数字,它会自动将一一添加到数组中。 带有JavaScript的HTML

 var input = document.getElementById('input').value; function Add(numbers) { numbers = []; for(int x = 0; x < 5; x++) { var numbers = input[x]; } return numbers; } function findMax(arr) { var max = arr[0]; for(var i = 0; i < arr.length; i ++) { if(arr[i] > max) max = arr[i]; } return max; } function Result() { document.write(document.getElementById('demo').innerHTML = findMax(arr)) } 
  <p id = "demo">Print here the result</p> <input type = "text"; id = "input"> <button onclick = "Add()">Add</button> <button onclick = "Result()">Result</button> 

要使用单个文本框获取数组中的所有5个元素(如果它们用单个空格分隔),请执行以下操作:

 var arr = input.split(' '); 

这将创建一个带有数字的数组“ arr”!

实际上,您编写的代码中有很多错误需要修复:

  • 您在add函数内部声明了numbers数组两次,而在全局范围外只声明了一次。
  • 您不需要循环即可将input值添加到array ,只需使用.push()
  • 添加元素后,无需返回numbers数组。
  • 不要使用document.write()来显示结果,只需使用document.getElementById('demo').innerHTML = findMax(numbers)
  • 确保右路传中numbers数组您findMax()函数,而不是arrfindMax(arr)

演示:

这是一个纠正了这些错误的演示。

 var input = document.getElementById('input'); var numbers = []; function Add() { if (numbers.length < 5) { numbers.push(+input.value); input.value = ""; } } function findMax(arr) { var max = arr[0]; for (var i = 1; i < arr.length; i++) { if (arr[i] > max) max = arr[i]; } return max; } function Result() { console.log(numbers); document.getElementById('demo').innerHTML = findMax(numbers); } 
 <p id="demo">Print here the result</p> <input type="text" ; id="input"> <button onclick="Add()">Add</button> <button onclick="Result()">Result</button> 

您可以尝试以下代码:

<body>
  <p id = "demo">Print here the result</p>
  <input type = "text"; id = "input">
  <button onclick = "Add()">Add</button>
  <button onclick = "Result()">Result</button>
<script>



var numbers=[];
function Add() {
  var input = document.getElementById('input').value;
  if(input != ""){
 numbers.push(parseFloat(input));
  }
 document.getElementById('input').value="";
 console.log(numbers);
}



function Result() {
    console.log(numbers);
  document.getElementById('demo').innerHTML = Math.max.apply(null, numbers);;

}

</script>
</body>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM