如何在Javascript中将数值变量与数组中的每个数值元素进行比较?

如何在Javascript中将数值变量与数组中的每个数值元素进行比较?,javascript,arrays,compare,Javascript,Arrays,Compare,如果我有一个Javascript数组,里面填充了10个数字。 例如(10,11,12,13,14,15,16,17,18,19) 我想取一个值为20的变量,检查是否有 数组中的元素数大于20。因为我将比较许多充满数字的数组,而不知道它们包含什么数字 如何取20,然后让Javascript测试数组中的每个数字,以确定它是否大于20 我知道你可以这样说: var x = 20; if ( x > myArray[0] && x > myArray[1]

如果我有一个Javascript数组,里面填充了10个数字。 例如(10,11,12,13,14,15,16,17,18,19) 我想取一个值为20的变量,检查是否有 数组中的元素数大于20。因为我将比较许多充满数字的数组,而不知道它们包含什么数字

如何取20,然后让Javascript测试数组中的每个数字,以确定它是否大于20

我知道你可以这样说:

var x = 20;
if (  x > myArray[0] && 
  x > myArray[1]     
但这可能意味着要输入一长串的元素检查。有没有像检查起始索引[0]到[10]之类的简单方法?

使用for循环

for (var i = 0; i < myArray.length; i++) {
    if (x > myArray[i]) {
         // whatever
    }
}
for(var i=0;imyArray[i]){
//随便
}
}
使用for循环

for (var i = 0; i < myArray.length; i++) {
    if (x > myArray[i]) {
         // whatever
    }
}
for(var i=0;imyArray[i]){
//随便
}
}
var x=20;
var myArray=[10,11,12,13,14,15,16,17,18,19];
var-cnt=0;
对于(var i=0;ix){
cnt++;
}
}
警报(“在数组中发现“+cnt+”值大于“+x+”);
var x=20;
var myArray=[10,11,12,13,14,15,16,17,18,19];
var-cnt=0;
对于(var i=0;ix){
cnt++;
}
}
警报(“在数组中发现“+cnt+”值大于“+x+”);
您可以使用:

并非所有浏览器都支持它,但您可以轻松地对其进行填充。此外,库也有类似的帮助函数,例如下划线的
any

可以使用:

并非所有浏览器都支持它,但您可以轻松地对其进行填充。此外,库还有类似的帮助函数,例如下划线的
any

尝试以下方法:

function getValuesFrom(array,x)
{
    x = +(x);//coerce to number
    array.sort(function(a,b)
    {
        return (a > b ? 1 : -1);
    });//sort in ascending order
    for (var i = 0;i<array.length;i++)
    {
        if (+array[i] >= x)
        {
            return array.slice(i);//return all elements >= x
        }
    }
}
var myArray = [10,11,12,13,14,15,16,17,18,19];
var larger = getValuesFrom(myArray,15);
console.log(larger);//[15,16,17,18,19]
console.log(larger.length);//5
函数getValuesFrom(数组,x)
{
x=+(x);//强制为数字
array.sort(函数(a,b)
{
返回(a>b?1:-1);
});//按升序排序
对于(变量i=0;i=x)
{
return array.slice(i);//返回所有元素>=x
}
}
}
var myArray=[10,11,12,13,14,15,16,17,18,19];
var较大=从(myArray,15)获取的值;
控制台日志(较大)//[15,16,17,18,19]
控制台。日志(较大的。长度)//5.
应该这样做。注意:将数组传递给此函数后,您可能会发现其顺序已更改,以避免出现以下情况:

function getValuesFrom(array,x)
{
    x = +(x);//coerce to number
    var tmpArray = array.slice(0);//copy array
    tmpArray.sort(function(a,b)
    {
        return (a > b ? 1 : -1);
    });//sort in ascending order
    for (var i = 0;i<tmpArray.length;i++)
    {
        if (+tmpArray[i] >= x)
        {
            return tmpArray.slice(i);//return all elements >= x
        }
    }
}
函数getValuesFrom(数组,x)
{
x=+(x);//强制为数字
var tmpArray=array.slice(0);//复制数组
tmpArray.sort(函数(a,b)
{
返回(a>b?1:-1);
});//按升序排序
对于(变量i=0;i=x)
{
返回tmpArray.slice(i);//返回所有元素>=x
}
}
}
试试这个:

function getValuesFrom(array,x)
{
    x = +(x);//coerce to number
    array.sort(function(a,b)
    {
        return (a > b ? 1 : -1);
    });//sort in ascending order
    for (var i = 0;i<array.length;i++)
    {
        if (+array[i] >= x)
        {
            return array.slice(i);//return all elements >= x
        }
    }
}
var myArray = [10,11,12,13,14,15,16,17,18,19];
var larger = getValuesFrom(myArray,15);
console.log(larger);//[15,16,17,18,19]
console.log(larger.length);//5
函数getValuesFrom(数组,x)
{
x=+(x);//强制为数字
array.sort(函数(a,b)
{
返回(a>b?1:-1);
});//按升序排序
对于(变量i=0;i=x)
{
return array.slice(i);//返回所有元素>=x
}
}
}
var myArray=[10,11,12,13,14,15,16,17,18,19];
var较大=从(myArray,15)获取的值;
控制台日志(较大)//[15,16,17,18,19]
控制台。日志(较大的。长度)//5.
应该这样做。注意:将数组传递给此函数后,您可能会发现其顺序已更改,以避免出现以下情况:

function getValuesFrom(array,x)
{
    x = +(x);//coerce to number
    var tmpArray = array.slice(0);//copy array
    tmpArray.sort(function(a,b)
    {
        return (a > b ? 1 : -1);
    });//sort in ascending order
    for (var i = 0;i<tmpArray.length;i++)
    {
        if (+tmpArray[i] >= x)
        {
            return tmpArray.slice(i);//return all elements >= x
        }
    }
}
函数getValuesFrom(数组,x)
{
x=+(x);//强制为数字
var tmpArray=array.slice(0);//复制数组
tmpArray.sort(函数(a,b)
{
返回(a>b?1:-1);
});//按升序排序
对于(变量i=0;i=x)
{
返回tmpArray.slice(i);//返回所有元素>=x
}
}
}

我喜欢使用
Object.prototype
来扩展JavaScript对象的基本功能。就像JS框架一样

因此,在JS
Array
-对象中引入一个新的
filter
函数不仅可以解决您的特定问题,而且还可以解决一系列问题

//使用新函数“filter”扩展数组类型
//因此,所有阵列都可以访问此函数
//参数'fn'是返回true或false的测试函数
Array.prototype.filter=函数(fn){
var filtered=[];//筛选项的新数组
for(var i=0,len=this.length;i3中查找项目
var myArrGt3=myArr.filter(
//这是测试函数/必须始终返回布尔值
职能(项目){
返回项>3;
}
);
//测试输出
document.write(JSON.stringify(myArrGt3));//打印“[4,5,6]”

我喜欢使用
Object.prototype
来扩展JavaScript对象的基本功能。就像JS框架一样

因此,在JS
Array
-对象中引入一个新的
filter
函数不仅可以解决您的特定问题,而且还可以解决一系列问题

//使用新函数“filter”扩展数组类型
//因此,所有阵列都可以访问此函数
//参数'fn'是返回true或false的测试函数
Array.prototype.filter=函数(fn){
var filtered=[];//筛选项的新数组
for(var i=0,len=this.length;i3中查找项目
var myArrGt3=myArr.filter(
//这是测试函数/必须始终返回布尔值
职能(项目){
返回项>3;
}
);
//测试输出
document.write(JSON.stringify(myArrGt3));//打印“[4,5,6]”

您可以使用jquery使用inaray方法
<script>
var arr = [ 4, "Pete", 8, "John" ];

jQuery.inArray( "John", arr ) // this returns 3(Index value of John)


</script>
var array1=["fox","tiger","lion"];
var array2=["rat","cow","lion"];
for(i=0; i<array2.length; i++)
{
document.write(jQuery.inArray( array2[i], array1 ));
}

Output: -1 
        -1 
         2