我目前正在使用以下名为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]
时出现上述错误?在我看来,这是一个基于我正在打印和检查的对象。
答案 0 :(得分:1)
您可以尝试
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]'
)
);
}
答案 1 :(得分:0)
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);