为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕运维8079593 2021-11-12 16:26:39
我目前正在使用以下名为 的对象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]会出现上述错误?对我来说,它似乎是一个基于我正在打印和检查的对象。
查看完整描述

2 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

你可以试试


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]'

        )

    );

}


查看完整回答
反对 回复 2021-11-12
?
Helenr

TA贡献1780条经验 获得超4个赞

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);


查看完整回答
反对 回复 2021-11-12
  • 2 回答
  • 0 关注
  • 147 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信