You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何简化含多分支if/else的Recipe查询代码,将条件整合到查询中?

简化后的代码

你可以通过动态构建查询条件对象消除冗余的if/else分支,只需要一次find调用就能实现相同逻辑:

const query = { ...searchTerm };

if (category) {
  query.category = category;
}

if (difficulty) {
  query.difficulty = { $in: difficulty.split(",") };
}

const recipes = await Recipe.find(query);
简化思路
  • 先初始化查询对象,继承searchTerm的所有原有条件
  • 单独判断category是否存在,存在则直接为查询对象添加category精确匹配条件
  • 单独判断difficulty是否存在,存在则添加difficulty的$in匹配逻辑(保留原代码的split处理,将逗号分隔字符串转为数组)
  • 最后统一调用Recipe.find(query),所有有效筛选条件会自动整合到查询中

这种写法和原代码逻辑完全一致,但结构更简洁,后续新增筛选条件时,只需添加对应if判断补充条件即可,扩展性更强。

内容的提问来源于stack exchange,提问作者jukenduit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 01:44:53