繁体   English   中英

如何在此JavaScript代码中降低这种循环复杂性?

[英]How to reduce this Cyclomatic complexity in this JavaScript code?

我正在使用Node.js构建一个简单的ETL工具。 因此,我得到了一个json对象,并操纵了另一个对象。 但是,经过Lint之后,我得到了

18:1警告函数'格式'的复杂度为5

这是代码示例。 我希望可以使用一些JavaScript魔术。

  if (rawObj.attr1 && rawObj.attr2) {
    formattedObj.attr2 = rawObj.attr1;
  }
  if (rawObj.attr3) {
    formattedObj.otherAttr = rawObj.attr3;
  }
  if (rawObj.attr4) {
    formattedObj.otherAttr4 = rawObj.attr4;
  }
  formattedObj.rank = index + 1;

  if (rawObj.attr5) {
    formattedObj.otherAttr5 = rawObj.attr5;
  }

基本上,它只是检查属性是否undefined 然后设置属性。

你在重复自己。 使用循环代替:

var props = [
    {from: "attr3", to:"otherAttr"},
    {from: "attr4", to:"otherAttr4"},
    {from: "attr5", to:"otherAttr5"}
];
if (rawObj.attr2)
    props.push({from: "attr1", to:"attr2"});

props.forEach(function(p) {
    if (rawObj[p.from])
        formattedObj[p.to] = rawObj[p.from];
});
formattedObj.rank = index + 1;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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