用JavaScript语句构造一个select器

我从一些会话variables创build一个MongoDBselect器。 如果会话值为空,则select器不应包含该条件。

我有一个select器

return Session.get('title') ? { title: Session.get('title') } : {}; 

它应该如此运作; 不过,我想过滤更多的会话值。

如果我添加另一个,我得到

 var title = Session.get('title'); var age = Session.get('age'); if (title && age) { return { title: title, age: age }; } else if (title) { return { title: title }; } else if (age) { return { age: age } } else { return {} } 

当我添加另一个会话值时它只会变得更加复杂。

我怎样才能以更聪明的方式获得同样的结果?

您可以使用数组来保存所有可能的值,然后在添加新值时添加到该数组中。

 var sessionVars = ['title', 'age']; var result = {}; sessionVars.forEach(function(varName) { var value = Session.get(varName); if (value) { result[varName] = value; } }); return result;