我在下面有一个简洁的if / else语句:
function () {
if (elem.attr('data-src-1') === '' && elem.attr('data-src-2') === '') {
// scenario a
} else if (elem.attr('data-src-1') === '' && elem.attr('data-src-2') !== '') {
// scenario b
} else if (elem.attr('data-src-1') !== '' && elem.attr('data-src-2') === '') {
// scenario c
} else {
// scenario d
}
}
通过严格的linting规则返回7的复杂性。我需要将其复杂度降低到6但却看不出如何使其更简洁?
答案 0 :(得分:2)
更具可读性(至少对我而言)
let data1 = elem.attr('data-src-1') === ''
let data2 = elem.attr('data-src-2') === ''
if (data1)
!data2 ? console.log(" scenario a ") : console.log(" scenario b ")
else
data2 ? console.log(" scenario c ") : console.log(" scenario d ")
答案 1 :(得分:1)
这更多是代码审核问题,但您可以将if 1=''
合并到if / elses中,然后对内部if / elses执行相同操作。
我认为这不太可读,但 在技术上不那么复杂。
function() {
if (elem.attr('data-src-1') === '') {
if (elem.attr('data-src-2') === '') {
// scenario a
}
else {
// scenario b
}
} else if (elem.attr('data-src-2') === '') {
// scenario c
}
else {
// scenario d
}
}