我在 javascript 中有一个低温阵列,我需要获得最低温度,所以我使用了 min.math 函数

I have a low temperature array in javascript and I need to get the lowest temp so I used the min.math function

我在 javascript 中有一个低温阵列,我需要获得最低温度,所以我使用了 math.min 函数。虽然第一次返回低温,然后我得到 NaN。

var lowTempArray = []; 
var lowest = Math.min(lowTempArray);

message += '<tr><td colspan="3"class="alt">The lowest temperature of ' + lowest.toFixed(2) + ' occurred on ' + ((date.getMonth() + 1) + '/' + (date.getDate()) + '/' +  date.getFullYear()) + '.' + '</td></tr>';

Math.min 将需要一系列数字,如 Math.min( 1,2,3,4,5 ) 而不是数组;

您必须像这样手动遍历数组:

var lowest = Number.MAX_VALUE;
for ( var i = 0; i < lowTempArray.length; i++ ) {
    if ( lowTempArray[i] < lowest ) {
        lowest = lowTempArray[i];
    }
}

编辑:让我改写成一个函数:

function lowest( arr ) {
    var lowest = Number.MAX_VALUE;
    for ( var i = 0; i < arr.length; i++ ) {
        if ( arr[i] < lowest ) {
            lowest = arr[i];
        }
    }
    return lowest;
}

这样使用:

var lowest = lowest( lowTempArray );

正如其他人所建议的那样,排序也是一种方法,但在浏览长列表时可能需要更多 CPU 的能力。

由于 Math.min 只取一系列数字,我建议只对数组进行排序,然后取第一个元素。

所以你可以

lowTempArray.sort(function(a,b){return a-b;});
var lowest = lowTempArray[0];

然后在您的其他语句中使用 lowest.toFixed(2)

干杯:)

因为min想要一个参数列表,而不是数组,你可以使用apply来使用数组作为函数的参数列表,例如:

var arr=[4,5,6,3,1,7,8];
Math.min.apply(this,arr); //1

查看更多申请信息: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply