这是用于检查isarray的最佳方法

这个问题在这里已经有了答案:

  • 你如何检查一个变量是否是JavaScript中的数组? [复制] 24个答案

  • 大个子(Jquery,下划线)这样做:

      isArray = Array.isArray || function(obj) {
        return Object.prototype.toString.call(obj) == '[object Array]';
      };
    

    但是,这些不是你正在寻找你的机器人,实际上根本不需要这个。 不要“检查”你的变量 - 只要知道它们。


    Array.IsArray会更好用。

    还要检查这个被认为有害的instanceof (或者如何编写一个健壮的isArray

    在涉及多框架DOM环境中的脚本时会出现问题。 简而言之,在一个iframe中创建的Array对象不会与在另一个iframe中创建的数组共享[[Prototype]]。 它们的构造函数是不同的对象,所以instanceof和构造函数检查失败:

    你也可以检查两者之间的速度变化,你会发现isArray比较快。

    这里有一个链接来检查: - Array.isArray vs instanceof数组

    以下代码用于检查速度变化:

    <script>
      Benchmark.prototype.setup = function() {
        var a = [1, 2, 3];
        var s = 'example';
        var f = false;
      };
    </script>
    

    使用Array.IsArray:

    (Array.isArray(a) && (Array.isArray(s) || Array.isArray(f)));
    

    它执行了近25,255,693次操作/秒

    现在使用instanceof: -

     (a instanceof Array && (s instanceof Array || f instanceof Array));
    

    它执行了近21,594,618次操作/秒

    即, instanceOf比使用IsArray慢15%。

    链接地址: http://www.djcxy.com/p/19297.html

    上一篇: which is the best method used for checking isarray

    下一篇: Identifying Array Object