[英]How to reduce complexity of a long boolean expression?
我有一个布尔表达式来评估它,在许多不同的情况下都相当长:
return (a && b && c) ||
(d && e && f) ||
...
这应该返回一个布尔值!
a,b,c,d,e和f是简单的相等比较,并且都不同。 这持续了12行,给我带来了44的圈复杂度
我试图查看Map对象以降低复杂性,但没有找到一种方法。
我如何降低这种表达式的复杂性?
您不能降低给定表达式的复杂度。
较慢的方法(但可能更结构化)是对表达式进行分组,并使用Array#some
评估外部数组,使用Array#every
评估内部数组,并进行短路。
return [[a, b, c], [d, e, f]].some(a => a.every(Boolean));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.