可能重复:
如何检测变量是否为数组
当我需要测试变量是否为数组时(例如,函数中的输入参数可能是对象或数组),我通常使用这段代码
typeof(myVar) === 'object' && myVar.length !== undefined;
这是正确的方法还是有更有效的方法,考虑到即使 myVar instanceof Array
更快,也应该避免由于iframe
问题?
可能重复:
如何检测变量是否为数组
当我需要测试变量是否为数组时(例如,函数中的输入参数可能是对象或数组),我通常使用这段代码
typeof(myVar) === 'object' && myVar.length !== undefined;
这是正确的方法还是有更有效的方法,考虑到即使 myVar instanceof Array
更快,也应该避免由于iframe
问题?
Array.isArray
现在可以在ECMAScript 5中使用,因此您可以将它与旧浏览器的polyfill一起使用:
if(!Array.isArray) {
Array.isArray = function (vArg) {
return Object.prototype.toString.call(vArg) === "[object Array]";
};
}
Array.isArray(myVar);
“iframe 问题”可以简单地通过不为框架和数组使用相同的名称来避免。在我看来,这并不难。也就是说,我从来不需要断言某事是否是大批...
如果您已经在代码中使用 jQuery,则可以使用 jQuery.isArray()。这是文档:
你可以试试—— Object.prototype.toString.call
一个例子——
var a = [1,2]
console.log(Object.prototype.toString.call(a))
这将返回 [object Array]
可以通过以下方式使用字符串切片方法进行检查
console.log(Object.prototype.toString.call(a).slice(8,-1)) <br />
返回“数组”
var a = [1,2]
console.log(Object.prototype.toString.call(a).slice(8,-1) == "Array") // true