我正在使用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
。然后设置属性。
答案 0 :(得分:2)
你重复自己。改为使用循环:
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;