回答

收藏

如何检查对象是否为数组?

技术问答 技术问答 545 人阅读 | 0 人回复 | 2023-09-12

我试图编写一个接受字符串列表或单个字符串的函数。如果是字符串,我想把它转换成只有一个项目的数组,这样我就可以在不担心错误的情况下循环它。
3 g' O# o% K4 ^3 d6 k) W, W2 ]* j/ A那么如何检查变量是否为数组呢?
" O8 y( I$ w. T4 A% y) y                                                                $ ?) I' K7 b1 K% I$ C, y1 e) d* y
    解决方案:                                                               
5 h3 s; Q! \; ^/ U7 g0 J                                                                您可以在现代浏览器中:* ?9 h. e, ], ?4 `
    Array.isArray(obj). X- j0 k0 g3 V" a$ e* g$ w
(受Chrome 5、Firefox 4.0、Internet Explorer 9、Opera 10.5 和 Safari 5 支持)
4 u3 m( F3 y0 S7 z9 c3 j' `! K  \9 c可添加以下内容:
2 i+ V, w9 h" i9 H2 H( X

    ( r5 z9 G8 @- c
  • // Only implement if no native implementation is availableif (typeof Array.isArray === 'undefined {  Array.isArray = function(obj)    return Object.prototype.toString.call(obj) === '[object Array]code]若使用 jQuery,你可以使用jQuery.isArray(obj)or $.isArray(obj)。如果你使用Underscore.js,你可以使用_.isArray(obj).: B$ L% Y' o, u0 s5 c: i( I
  • 如果不需要检测在不同帧中创建的数组,也可以使用instanceof:[code]obj instanceof Array
    7 j9 n) H% O1 }* z& u! d
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则