Я создаю простой инструмент ETL, используя Node.js. Итак, я получаю один объект json и манипулирую с другим объектом. Однако, после того, как проходит через Lint, я получаюКак уменьшить эту сложность Cyclomatic в этом JavaScript-коде?
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
или нет. Затем устанавливает свойство.
Выслать копию? Использовать библиотеку преобразования общего назначения? –
Не знаете, как измеряется ваша сложность, но вы можете встроить свои операторы if с помощью тройного оператора, чтобы всегда выполнялось назначение переменной: 'formattedObj.attr2 = rawObj.attr1 && rawObj.attr2? rawObj.attr1: undefined; '. Существуют и другие способы уменьшить вашу сложность, но общее решение несколько ограничит вас. –
Будет что-то вроде этой работы: http://stackoverflow.com/questions/2802055/what-does-the-construct-x-x-y-mean –