Javascript中的逗号分隔对象是什么?

时间:2014-09-12 13:35:58

标签: javascript mongoose console.log

现在我注意到一件事,这对我来说很奇怪,我找不到合适的文档。当我使用Mongoose.find()从集合中获取文档时,我将它们记录到控制台。写的是:

{ 
   name: 'first document'
},{
   name: 'second document'
}

(当然他们有_id的,但这是为了简单起见。)

这在Javascript中是什么?我的意思是,我试着做.forEach就可以了,但我得到了:

TypeError: undefined is not a function
    at Array.forEach (native)
    ...

但是,我通常可以这样做:

User.find({}, function (err, users){
//        users.forEach(console.log('iterated')); -> returns error that I've described

    for(var i=0; i<users.length; i++){
        console.log('iterated');
    }
    console.log('users' + users);
});

修改

类型错误是因为没有将函数传递给forEach方法,如注释中所述。但为什么它不会返回类似的东西:

[{ 
   name: 'first document'
},{
   name: 'second document'
}}

2 个答案:

答案 0 :(得分:1)

您需要将函数传递给forEach方法:

users.forEach(function(v, i){
  console.log('User name = ' + v.name);
});

如果您未在函数中包装console.log('iterated'),它将首先调用log方法并使用返回值发送到forEach方法。

答案 1 :(得分:0)

console.log('users' + users);

users投射到字符串,which通常会通过逗号加入它们。如果你想像往常一样记录它们,不要用字符串连接它们,而是将users作为单独的参数传递给console.log

console.log('users', users);