在javascript中怎样判断一个变量是否存在数组中!请高人解决;谢谢!

解决方案 »

  1.   

    遍历一下该数组! Array.prototype.contains = function(o){
    var tc = false;
    for(var i=0,l=this.length;i<l;i++){
    if(-1 != this[i].toString().indexOf(o)){
    tc = true;
    }
    }
    return tc
    }
      

  2.   

    dh20156(风之石)提供的方法有些BUG
    Array.prototype.contains = function(o){
    var tc = false;
    for(var i=0,l=this.length;i<l;i++){
    if(-1 != this[i].toString().indexOf(o)){
    tc = true;
    }
    }
    return tc
    }
    这个IF语句的条件有些问题,“if(-1 != this[i].toString().indexOf(o))”
    如果有数组arr[0]=123;arr[1]=23; 要检测的数据o=1按dh20156(风之石)提供的方法,返回TRUE,但实际上“1”不存在这个数组中。应改为
    <html>
    <head>
    <script>
    Array.prototype.contains = function(o){
    var tc = false;
    for(var i=0,l=this.length;i<l;i++){
    if(this[i]==o){
    tc = true;
    }
    }
    return tc
    }
    function myFun()
    {
    var strArr = new Array();
    strArr[0] = 123;
    strArr[1] = 23;
    var value = 123;
    var blRet = strArr.contains(value)
    alert(blRet);
    }
    </script>
    </head>
    <body >
    <input type="button" value="试验" onClick="myFun();">
    </body>
    </html>
    遍历数组因该是最简单的方法了,满足你提的要求。
      

  3.   

    呵呵,感谢楼上提出的问题,确实没有注意,只是把自己COMBOBOX里的一段匹配用户输入的ARRAY原型扩展发上来了,也没改一下! ^_^