我有一个这样的if语句
if(areEqual(a,ax) && areEqual(b,bx) && areEqual(c,cx) && areEqual(d,dx) && areEqual(e,ex) && areEqual(f,fx) && areEqual(g,gx) && areEqual(h,hx) && areEqual(i,ix) && areEqual(j,jx) && areEqual(k,kx)
如果语句包含大量条件并且不可读,则这是。如何避免这种情况?是否有适用于 if 条件的管道模式?
假设你使用的是Python,你可以将所有检查存储在一个列表中(比如list1
(并检查
if sum(list1)==len(list1):
do something
在 javascript 中,如果你将 true 和 true 加在一起,你会得到 2。使用这些信息,您可以将所有条件放在一个数组中并得到它的总和。
var conditions = [condition1, condition2, ... ]; -- all conditions go here
var sum = 0; -- works out the sum
for (var i = 0; i < conditions.length; i++) {
sum += conditions[i];
}
if (sum === conditions.length) {
console.log("success")
}