网络编程
位置:首页>> 网络编程>> JavaScript>> javascript判断一个元素是否数组

javascript判断一个元素是否数组

 来源:stauren.net 发布时间:2009-07-31 12:48:00 

标签:JavaScript,数组,判断

javascript中要判断一个变量是否为array通常是比较困难的,因为

var a = [];
alert(typeof a === 'object'); // true

通常的做法是判断

a.constructor === Array // true

可是这个方法有一个问题,如果一个数组是来自另一个frame中的,那么它的constructor 将是另一个对象。

YUI中用了如下的方法:
  

isArray: function(o) { 
        if (o) {
           return L.isNumber(o.length) && L.isFunction(o.splice);
        }
        return false;
    },

简单来说,就是判断这个变量有没有 length 属性,同时有没有 splice 方法。可惜,这样的判断方法是可以用一个 object 来伪造数组的。

Google 的 Mark Miller 发现,用下面方法,可以简单又可靠的得到一个变量是否一个数组:
Object.prototype.toString.apply(value) === '[object Array]'
simple & easy, 我已经在 d-u 中加入这个方法了,相信其他 library 也会渐渐采用这个方法的。

from The Miller Device

使用 d-u javascript library, 敬请访问 http://code.google.com/p/double-underscore/source/browse/#svn/trunk/src

 

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com