繁体   English   中英

如何减少长布尔表达式的复杂度?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM