javascript - 为什么 console.log() 显示一个数组,但 typeof 返回 'object' ?

标签 javascript node.js mongodb mongoose

<分区>

这与 mongoose find() 操作的结果有关。代码

console.log('显然这是一个' + typeof campaign.advertGroups, campaign.advertGroups);

导致以下输出:

显然这是一个对象 [ { adverts: [ [Object], [Object], [Object] ] } ]

campaign.advertGroups 不像一个数组(即长度属性未定义等),即使它是 Mongo 集合中的一个数组。

任何人都可以阐明这一点吗?感觉很愚蠢,我一定错过了一些非常非常明显的东西。

最佳答案

javascript 的一个奇怪行为是 typeof [] 是一个对象。虽然有一些方法可以检查对象是否为非数组。

其中之一是:

if(Array === someobj.constructor)
{
  console.log('Its an array');
}

关于javascript - 为什么 console.log() 显示一个数组,但 typeof 返回 'object' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34567922/

相关文章:

javascript - 使用 jquery 重复 html 元素

javascript - Angular 变量更改后恢复为原始值

c# - 如何在 express node.js POST 请求中接收 JSON?

node.js - 如何处理内部服务器 API 和 HTTP API 之间的错误

javascript - Node-RED发送多个消息只返回第一个消息

javascript - 无法在javascript中的 native 窗口对象的子类上调用方法

javascript - 何时关闭 MongoDB 连接

javascript - 如何查询多对多关系sequelize?

mongodb - 在 Spring data mongo query-dsl 中过滤嵌套映射值

node.js - 如何让 Strapi 将 Mongo/Mongoose 索引设置为 "id"列?