typeof 返回对象但收到错误:“未定义不是对象”

我目前正在使用以下名为 的对象data:


Object {

   "getOrder": Array [

      Object {

         "__typename": "Order",

         "id": 1,

         "items": Array [

            Object {

               "__typename": "Item",

               "id": 1,

            },

            Object {

            "__typename": "Item",

            "id": 2,

         },

      ],

   },

 ],

}

当我尝试访问时data.getOrder,出现错误undefined is not an object。当我console.log(typeof data.getOrder)输出对象时。当我只打印时data.getOrder,它会正确打印上面的数组。


为什么当我尝试这样做时data.getOrder[0]会出现上述错误?对我来说,它似乎是一个基于我正在打印和检查的对象。


慕运维8079593
浏览 149回答 2
2回答

幕布斯6054654

你可以试试console.log(typeof data.getOrder[0]);并使用它data.getOrder[0].id因为getOrder是一个Array.如果您使用typeof获取数组的数据类型,则结果object检查数组function isArray(a){    return (        typeof(a) === Object.name.toLowerCase() && (            a instanceof Array ||             Object.prototype.toString.call(a) === '[object Array]'        )    );}

Helenr

let data = {  "getOrder": [{    "__typename": "Order",    "id": 1,    "items": [{        "__typename": "Item",        "id": 1,      },      {        "__typename": "Item",        "id": 2,      }    ]  }]}console.log(data.getOrder[0].__typename);console.log(data.getOrder[0].items[0].__typename);console.log(data.getOrder[0].items[1].id);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript