【发布时间】:2019-08-30 17:09:00
【问题描述】:
我正在使用一个非常简单的 if 语句树,并希望尽可能地编写 DRY 代码,我相信我正在为我的用例实现 DRYest 代码并尝试写入指向对象键的指针 (如果没有 setter 函数似乎不可能) 并简化大括号,但出于问题的目的,我将它们留在里面,以明确需要做什么。
这个 if 树有更简单的版本吗?
let query = {};
if (min_budget || max_budget) {
if(min_budget && max_budget) {
query['budget.middleBound'] = { $gte: min_budget, $lte: max_budget }
} else if (min_budget && !max_budget) {
query['budget.middleBound'] = { $gte: min_budget }
} else if (max_budget && !min_budget) {
query['budget.middleBound'] = { $lte: max_budget }
}
}
【问题讨论】:
-
一旦您检查了
min_budget && max_budget,就没有理由随后明确检查!min_budget或!max_budget。 -
@Pointy 是的!很有帮助。感谢您,我已经应用了上面的编辑
-
min_budget和max_budget包含什么? -
外层 if 在这里没有任何作用
-
@Bdyce - 不要在这里根据反馈不断编辑您的问题(除了澄清人们感到困惑的事情)。 Stackoverflow 应该是你问一个问题,你会得到一个或多个答案。你不会不断地改变问题。
标签: javascript node.js syntax