我正在从输入字段填充数组,我需要找到该数组中的最大数字。
使用Math.max(myData)给出了NaN错误,当我使用“if”语句时,有时它会起作用,有时却不起作用。 例如:如果我有40和100的数组,它给我40更大的数字,但当我有500比它工作正常。
如果我想让Math.max工作,我需要创建一个将字符串转换为数字的新函数,对吗?
我的代码,所以你可以看到错误在哪里。
function Data() {
var h = 0;
var secnd = 1;
var najBr = 0;
for (var i = 0; i < valGrup2; i++)
{
var first = 1;
myDataName[i] = document.getElementById('ime' + secnd).value;
for (var j = 0; j < val2; j++)
{
myData[h] = document.getElementById("inputpolja" + first + secnd).value;
if(myData[h]>najBr){
najBr=myData[h];
}
myDataValue[h] = document.getElementById("inputpolja" + first + secnd).value;
h++;
first++;
}
secnd++;
}
//najBr=Math.max(myData);
console.log(najBr);
答案 0 :(得分:1)
Math.max
只接受普通数字,而不接受数组。
使用此:
function getMaxOfArray(numArray) {
return Math.max.apply(null, numArray);
}
答案 1 :(得分:1)
Math.max
采用多个参数,而不是数字数组。您可以使用Function#apply()
将数组视为参数列表:
Math.max.apply(null /* the context */, myData)