我正在使用Meteor和JavaScript构建一个Web应用程序,并希望基于属性过滤JSON对象。我可以运行
fullList.find()
来获取所有内容,fullList.find({'Color': 'r'})
来获取仅“红色”物品,但我想返回所有“红色”或“蓝色”的物品,并且无法找到正确的语法。我已经尝试了各种组合,例如fullList.find({'Color': 'r' || 'b'})
和fullList.find({'Color': ('r' || 'b')})
,但它要么根本不运行,要么只返回具有单个属性的项目,而不是返回具有任一属性的项目。我觉得这应该是一个很容易解决的问题,只是我不太熟悉JavaScript。
以下是我的(相关)代码,以保证完整性。仅两个条件为真的逻辑失败(而不是一个或三个):
indicadores: function(){
if (Session.get("displayUrgencies")){
if (Session.get("displayInsuff")){
if (Session.get("displayStrengths")){
console.log("display all");
return fullList.find();
}
else {
console.log("display urgencies and insufficiencies");
return fullList.find({'Color': 'v' || 'r'});
}
}
else {
if (Session.get("displayStrengths")){
console.log("display urgencies and strengths");
return fullList.find({'Color': 'b' || 'r'});
}
else {
console.log("display urgencies");
return fullList.find({'Color': 'r'});
}
}
}
else if (Session.get("displayInsuff")){
if (Session.get("displayStrengths")){
console.log("display insufficiencies and strengths");
return fullList.find({'Color': 'v' || 'b'});
}
else {
console.log("display insufficiencies");
return fullList.find({'Color': 'v'});
}
}
else if (Session.get("displayStrengths")){
console.log("display strengths");
return fullList.find({'Color': 'b'});
}
else {
console.log("display all (default)");
return fullList.find();
}
},
.find
操作? - James G.