使Math.max.apply读取变量

时间:2016-11-14 23:25:37

标签: javascript arrays variables

我对编码很新,并尝试了一些有趣的东西,但是我正在努力解决它

function result() {
var n1 = document.getElementById("N1");
var n2 = document.getElementById("N2");
var n3 = document.getElementById("N3");
var a = [n1,n2,n3];
var temp = Math.max.apply(Math, a)
var out=document.getElementById("res").innerHTML = temp;
}

我试图让它输出通过HTML输入的数字

<td><input class="textBox" id="N3" type="number"/></td>

然而,它不会将其读作数字,只会显示NaN。帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

如果您需要temp为输入的最高值,则以下内容将起作用:

function result() {
    document.getElementById("res").innerHTML = Math.max(
        parseFloat( document.getElementById("N1").value ),
        parseFloat( document.getElementById("N2").value ),
        parseFloat( document.getElementById("N3").value )
    );
}

一些意见:

  • 请注意,我们只使用Math.max()。此处不需要apply(),因为您明确调用max()方法。
  • 我假设N1N2等是<input />元素,因此您需要使用.value获取其值属性。
  • 我们需要将输入中的值视为浮点数(如果有效则将整数视为整数),因此我们分别使用parseFloat()(或parseInt())。在大多数现代浏览器中,这在技术上并不需要,但仍然是很好的做法。

答案 1 :(得分:0)

你的n1,n2和n3是元素的值,而不是元素的值:

function result() {
var n1 = document.getElementById("N1").value;
var n2 = document.getElementById("N2").value;
var n3 = document.getElementById("N3").value;
var a = [n1,n2,n3];
var temp = Math.max.apply(Math, a)
    var out=document.getElementById("res").innerHTML = temp;
}