Вид поздней вечеринки, но вы (или другие, которые искали способы уменьшить цикломатическую сложность) могли пойти с таким подходом. Это похоже на шаблон стратегии. В зависимости от того, можете ли вы или не можете использовать ES6, определите, какой из setRawObjProp
вы должны использовать.
function setFormObjName() {
formattedObj.name = rawObj.title;
console.log(arguments.callee.name,formattedObj);
}
function setFormObjURL() {
formattedObj.url = rawObj.urls.web.project;
console.log(arguments.callee.name,formattedObj);
}
function setFormObjImage() {
formattedObj.image = rawObj.photo.thumb;
console.log(arguments.callee.name,formattedObj);
}
function setFormObjCat() {
formattedObj.category = rawObj.category.name;
console.log(arguments.callee.name,formattedObj);
}
function setRawObjProp(obj) {
var objectMap = new Map();
objectMap
.set('string1', setFormObjName)
.set('string2', setFormObjURL)
.set('string3', setFormObjImage)
.set('string4', setFormObjCat);
if (objectMap.has(obj)) {
return objectMap.get(obj)();
}
else {
console.log('error', obj);
}
}
/*
function setRawObjProp2(obj) {
var objectMap = {
'string1': setFormObjName,
'string2': setFormObjURL,
'string3': setFormObjImage,
'string4': setFormObjCat,
};
if (objectMap.hasOwnProperty(obj)) {
return objectMap.get(obj)();
}
else {
console.log('error', obj);
}
}
*/
var rawObj = {
title: 'string1',
urls: {
app: {
project: 'some thing'
},
web: {
project: 'string2'
}
},
photo: {
large: 'large',
thumb: 'string3'
},
category: {
name: 'string4',
type: 'some type',
id: 12345
}
},
formattedObj = {
title: '',
urls: {
web: {
project: ''
}
},
photo: {
thumb: ''
},
category: {
name: ''
}
};
setRawObjProp('string1');
/* setRawObjProp2('string1') */
'Я получаю сообщение об ошибке от jshint о цикломатической complexity' - не с этим кодом вы не –
Этот кусок кода не имеет большой сложности цикломатическую - в зависимости от того, как вычисляется я ожидаю, что это значение из От 3 до максимум 5. Возможно, это часть большей части кода, или у вас действительно низкий порог для получения предупреждения. –
жаль, что я пропустил часть кода. – toy