2013-03-01 39 views
0

我有这样一段代码:有没有可能只有价值的对象?

db.collection('coders', function(err, collection) { 
     collection.find(toFind).toArray(function(err, items) { 
      res.send(items); 
     }); 

其中toFind是一样的东西{"position":2,"$or":[{"position":{"$lt":20}},{"name":"whatever"}]} 它是一个字符串,所以前面的代码不执行,因为它需要一个对象。我已经知道,我可以创建对象从字符串像

var obj={} 
obj[key] = {value} 

但我怎么能创建一个对象没有键?

回答

1

toFind转换从字符串转换成一个对象,你可以通过到find,使用JSON.parse

toFind = JSON.parse(toFind); 
0

JavaScript中的所有内容都是一个对象。但是,你显然需要的是一个简单的变量:

obj[key] = value; 

你上面贴的对象将被精确定义是这样的:

var obj = { 
    "position": 2, 
    "$or": [{ 
     "position": { 
      "$lt": 20 
     } 
    }, { 
     "name": "whatever" 
    }] 
}; 
+1

没有,你也有基本类型,如布尔值,字符串,数字等 – 2013-03-01 13:00:50

+1

阿逢但是,这更多的是内在的东西。例如,即使是一个普通的'number'也有'Number.prototype'方法' – ThiefMaster 2013-03-01 13:02:22

+0

[(不是)JavaScript中的所有内容都是对象](http://blog.brew.com.hk/not-everything-in-javascript -is-一个对象/)。数字是基元,当你尝试从它访问一个属性时,JavaScript会自动复制基元并访问该对象包装器的属性。在http://stackoverflow.com/a/44042894/3966682查看我的答案 – d4nyll 2017-05-18 09:05:28