0

有没有办法将整数与整数数组进行比较?例如,要确定一个 int 是否大于任何数组 int?

var array = [1, 2, 3, 4];
if(5 > array){ 
    // do something 
}

更新:我想我的意思是,比数组中的最大数大 5。谢谢!

4

3 回答 3

8

您可以使用Math.max应用

if (5 > Math.max.apply(Math, array)) {
    // do something
}

更新:解释它的工作原理。它在我链接的文档中有所描述,但我会在这里尝试更清楚:

Math.max返回零个或多个数字中的最大值,因此:

Math.max(1, 2, 3, 4) // returns 4

apply调用具有给定“this”值(第一个参数)和作为数组提供的参数(第二个)的函数。所以:

function sum(a, b) {
    return a + b;
}

console.log(sum.apply(window, [2, 3])); // 5

因此,如果您有一个整数数组并且想要获得最大值,则可以将它们组合为:

console.log(Math.max.apply(Math, [1, 2, 3, 4])); // 4

因为它就像有:

console.log(Math.max(1, 2, 3, 4));

不同之处在于您传递了一个数组。

希望现在更清楚了!

于 2012-06-06T23:38:25.900 回答
1

没有内置的好和可读的方法,但可以简单地通过以下方式完成:

var bigger = true;
for (var i =0; i < array.length; i++) {
    if (5 <= array[i]) {
        bigger = false;
        // you can add here : break;
    }
}
于 2012-06-06T23:37:25.150 回答
0

当然,你可以对数组进行排序,取最后一个元素,看看你的整数是否大于那个。或者,您可以循环并检查每一个。由你决定。循环是一种更高效的方式。

//maybe check the bounds on this if you know it can be a blank array ever
var max = myArray[0];
for(var x = 0; x < myArray.length; x++) {
    max = Math.max(max, myArray[x]);
}

if(500 > max) {
    //do something
}
于 2012-06-06T23:38:45.290 回答