Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使Math.max.apply读取变量_Javascript_Arrays_Variables - Fatal编程技术网

Javascript 使Math.max.apply读取变量

Javascript 使Math.max.apply读取变量,javascript,arrays,variables,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.getElement

我对编码相当陌生,尝试了一些有趣的东西,但是我正在努力

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。非常感谢您的帮助。

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

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

  • 请注意,我们只是使用<这里不需要code>apply(),因为您显式调用了
    max()
    方法
  • 我假设
    N1
    N2
    等都是
    元素,因此需要使用
    .value
    获取它们的value属性
  • 我们需要将来自输入的值视为浮点数(或整数,如果可以的话),因此我们使用(或分别使用)。在大多数现代浏览器中,这在技术上不是必需的,但却是一种良好的实践
您的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;
}

你需要什么样的
temp
?输入的最高值?
var n1=parseFloat(document.getElementById(“n1”).value)
etc@BenM是的,温度应该是最高的number@JaromandaX非常感谢。这正是我需要的。更快的方法是
Math.max.apply(Math,[“N1”,“N2”,“N3”]).map(函数(id){return parseFloat(document.getElementById(id.value);})
。你为什么认为
1ruyrgjyes!!%&“/)%&·)/&/)
应被视为
1
parseFloat
parseInt
是将任意字符串解析为数字的糟糕方法。是的,它们是,但解释了使用
Number()
进行强制转换的含义(以及在
Math.max()中处理
NaN
)是一整罐蠕虫,这超出了原来问题的范围。