请问在javascript里怎么识别一个变量是数组还是字符串?

解决方案 »

  1.   

    先判断这个变量是不是一个对象,如果是对象,才有可能是数组。
    然后判断变量的构造器。记不太清了,如果构造器是Array则是数组,如果是String则是字符串。
      

  2.   

    <script>
      function isArray (object) {
        if (!window.Array) 
          return false;
        else
          return object.constructor == window.Array;
      }
      var a = new Array();
      var b = String("ssssssssssssssss");
      alert(isArray(a))
      alert(isArray(b))
      </script>
      

  3.   

    if (x.length != null)
     alert("array");
    else
     alert("not array");
      

  4.   

    saucer的方法
    我试了一下 string和array的length都不是null都有值啊比如
    <script language="javascript">
    var a=String("ssssssssssssssss");
    var b= new Array("x","x");
    alert(a.length);
    alert(b.length);
    </script>孟子的方法可以
      

  5.   

    <script>
    function isArray (object) {
      if (!window.Array) 
        return false;
      else
        return object.constructor == window.Array;
    }
    function isString (object) {
      if (!window.String) 
        return false;
      else
        return object.constructor == window.String;
    }
    var a = new Array();
    var b = String("ssssssssssssssss");
    var c = "ssssssssssssssss";
    alert(isArray(a))
    alert(isArray(b))
    alert(isArray(c))
    alert(isString(a))
    alert(isString(b))
    alert(isString(c))</script>
      

  6.   

    yes, sorry, my method is too crude, net_lover's solution is betterif (y.length != null && typeof(y)=="object")
     alert("array");
    else
     alert("not array");then, this doesn't exclude y is an object and has a length property
      

  7.   

    经测试
    <script>
    // var y="xxxx";  //测试1  这样就可以正确验证,
    var y= new String("xxxxx");//测试2  这样就不正确了if (y.length != null && typeof(y)=="object")
     alert("array");
    else
     alert("not array");
    </script>仍然有问题的,
    请问 这两种声明字符串的方法有何不同啊?
      

  8.   

    function isArray() 
    {
    if (typeof arguments[0] == 'object') 
    {  
    var criterion = arguments[0].constructor.toString().match(/array/i);
    return (criterion != null);  
    }
    return false;
    }这是一行之有效的方法,我试过了:)