Javascript 中的 IN 运算符功能类似于 SQL 中的运算符

Ala*_*laa 5 javascript in-operator

我尝试了以下操作,但它引发了异常:

                if (!$get('sslot_hf0').value in ('X', 'Y', 'Z', '0')) {
                $get('sslot_hf0').value = 'X';
            }
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个类似于IN操作符的函数SQL

Rup*_*tel 2

您可以使用下面的函数来达到相同的目的,第二个参数可以是数组或对象,第一个参数是您在数组或对象中搜索的值。

   function inStruct(val,structure)
        {

          for(a in structure)
             {
               if(structure[a] == val)
                 {
                   return true;
                 }
             }
           return false;
        }
if(inStruct('Z',['A','B','Z']))
    {
       //do your stuff
    }
Run Code Online (Sandbox Code Playgroud)

// 该函数还遍历继承的属性

即在您包含的 js 库的某些地方

Array.prototype.foo = 10;
Run Code Online (Sandbox Code Playgroud)

 instruct(10,[1,2,3]) // will return true
Run Code Online (Sandbox Code Playgroud)

对于物体也会发生同样的情况。检查这个小提琴 http://jsfiddle.net/rQ8AH/17/

已编辑::

谢谢大家的评论...这是更新的代码,我认为最好也保留旧功能。因此,有人可以注意到其中的差异。

function inStruct(val,structure)
    {

      for(a in structure)
         {

           if(structure[a] == val && structure.hasOwnProperty(a))
             {
               return true;
             }
         }
       return false;
    }
Run Code Online (Sandbox Code Playgroud)