问题

我正在尝试编写一个接受字符串列表或单个字符串的函数.如果它是一个字符串,那么我想将其转换为只有一个项目的数组.然后我可以在不担心错误的情况下循环它.

那么如何检查变量是否是数组?


我已经完成了下面的各种解决方案并创建了一个 jsperf测试.

  最佳答案

在现代浏览器中你可以做

 Array.isArray(obj)
 

( 支持 Chrome 5,Firefox 4.0,IE 9,Opera 10.5和Safari 5)

对于后向兼容性,您可以添加以下内容

 # only implement if no native implementation is available
if (typeof Array.isArray === 'undefined') {
  Array.isArray = function(obj) {
    return Object.prototype.toString.call(obj) === '[object Array]';
  }
};
 

如果您使用jQuery,您可以使用jQuery.isArray(obj)$.isArray(obj).如果您使用下划线,您可以使用_.isArray(obj)

如果您不需要检测在不同帧中创建的数组,您也可以使用 instanceof

 obj instanceof Array
 

  相同标签的其他问题

javascriptarraysjavascript-objects
下一个问题: