为什么带有对象的 typeof 数组返回“对象"?而不是“数组"? [英] Why does typeof array with objects return "object" and not "array"?
本文介绍了为什么带有对象的 typeof 数组返回“对象"?而不是“数组"?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
可能的重复:
JavaScript:检查对象是否为数组?
为什么一个对象数组被认为是一个对象,而不是一个数组?例如:
Why is an array of objects considered an object, and not an array? For example:
$.ajax({
url: 'http://api.twitter.com/1/statuses/user_timeline.json',
data: { screen_name: 'mick__romney'},
dataType: 'jsonp',
success: function(data) {
console.dir(data); //Array[20]
alert(typeof data); //Object
}
});
推荐答案
Javascript 中一个奇怪的行为和规范是数组的类型是 Object
.
One of the weird behaviour and spec in Javascript is the typeof Array is Object
.
您可以通过以下几种方式检查变量是否为数组:
You can check if the variable is an array in couple of ways:
var isArr = data instanceof Array;
var isArr = Array.isArray(data);
但最可靠的方法是:
isArr = Object.prototype.toString.call(data) == '[object Array]';
由于您使用 jQuery 标记了您的问题,因此您可以使用 jQuery isArray
函数:
Since you tagged your question with jQuery, you can use jQuery isArray
function:
var isArr = $.isArray(data);
这篇关于为什么带有对象的 typeof 数组返回“对象"?而不是“数组"?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文