javascript在数组中查找最大数字不起作用

时间:2014-11-18 11:38:26

标签: javascript arrays

我正在从输入字段填充数组,我需要找到该数组中的最大数字。

使用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);

2 个答案:

答案 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)