如何在这样的javascript代码中处理循环复杂性

How procced cyclomatic complexity in such javascript code?

本文关键字:代码 处理 循环 复杂性 javascript      更新时间:2023-09-26

我的javascript存在一些复杂性问题。它看起来像:

 function mainFunction(scope, element) {
        var eventHandlerMap = {
            'firstEvent': firstEventHandler,
            'secondEvent': secondEventHandler,
            .....
        };
        function firstEventHandler(element) {
            if (element) {
                //some code
            } else {
                //some code
            }
        }
        function secondEventHandler(element) {
            //some code
        }
        //and other EventHandler functions
}

现在mainFunction的复杂性为41,但我的声纳不允许超过10。我不擅长javascript,也不知道如何修复它。

计算复杂性的方式应在下一个插件版本中更改(请参阅https://jira.sonarsource.com/browse/SONARJS-729)。

为什么不将firstEventHandler和secondEventHandler移到mainFunction之外?

如果您试图实现信息隐藏,可以使用ES6类或使用模块模式,而不是嵌套函数。