Possible Duplicate:
JavaScript: Check if object is array?

为什么一个对象数组被认为是一个对象,而不是一个数组?例如:

$.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
    }
});​

Fiddle

推荐答案

Javascript中一个奇怪的行为和规范是数组的类型是Object.

您可以通过两种方式判断变量是否为数组:

var isArr = data instanceof Array;
var isArr = Array.isArray(data);

但最可靠的方法是:

isArr = Object.prototype.toString.call(data) == '[object Array]';

由于您用jQuery标记了问题,因此可以使用jQuery isArray函数:

var isArr = $.isArray(data);

Javascript相关问答推荐

我可以在useState中调用函数并使用其数据吗

验证嵌套 colored颜色 代码的结果

我无法使用tailwind-css和reactJS修改图像的位置

使用事件监听器在JavaScript中重新分配全局变量

类型错误:tasks.map不是函数(MERN堆栈)

用户单击仅在JavaScript中传递一次以及其他行为

在时间轴完整日历中显示日期标题

如何最好地从TypScript中的enum获取值

react/redux中的formData在expressjs中返回未定义的req.params.id

使用i18next在React中不重新加载翻译动态数据的问题

我在我的Java代码中遇到了问题,代码的一部分看不到先前定义的对象

在react JS中映射数组对象的嵌套数据

Angular 中的类型错误上不存在获取属性

Angular 订阅部分相互依赖并返回数组多个异步Http调用

如何创建返回不带`new`关键字的实例的类

在使用REACT更改了CSS类之后,无法更改CSS样式

基于产品ID更新条带产品图像的JavaScript命中错误

无法检索与Puppeteer的蒸汽游戏的Bundle 包价格

更改agGRID/Reaction中的单元格格式

如何使用puppeteer操作所有选项