当前位置: 首页 > 面试题库 >

为什么带有对象的typeof数组返回“对象”而不是“数组”?[重复]

海翼
2023-03-14
问题内容

可能重复:

JavaScript:检查对象是否为数组?

为什么将对象数组视为对象而不是数组?例如:

$.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的怪异行为和规范之一就是Array is Object

您可以通过以下几种方法检查变量是否为数组:

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

但是最可靠的方法是:

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

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

var isArr = $.isArray(data);


 类似资料:
  • 我有一个sql select查询,它只从数据库中检索单个列(组)(即),我在对象数组列表中接收上面列表的结果 , 理想情况下,结果应该包含一个对象数组列表,但是当我检查时,结果的第0个索引包含String object而不是object数组。 但是,如果我使用多个列(假设在查询的select子句中有2个列),我可以看到结果的第0个索引作为对象数组,即 即使查询的select子句中只提到一列,如何获

  • 问题内容: 只是试图在视图中显示我通过ajax从控制器获取的数组,但它显示的是[object Object],[object Object]而不是array。请在下面检查我的js文件: 问题答案: 使用转换到。 试试这个: 我认为,这对您有帮助-

  • 我正在搜索文档中的contacts数组中包含特定_ID的文档。下面是结构: 它执行与$elemmatch查询相同的操作。 我可能错过了一些非常基本的东西,但如果你们能提供一些建议,我将非常感谢。

  • 我有以下练习: 编写一个名为createListOfObjects的函数,该函数接受 包含名字和姓氏以及返回值的字符串数组 一个对象数组,每个对象都具有属性 和以及名字和姓氏值 对应值* var namesList=['Cameron Betts','Shana Lopez','Angela li']* createListOfObjects(名称列表) = 到目前为止,我的解决方案是: 但它返回

  • 我知道要在数组中查找值是否存在,我可以使用indexOf,但如何使用对象数组呢?