提问人:Jakub Najvárek 提问时间:10/6/2023 更新时间:10/18/2023 访问量:31
警告函数“getPositionValue”的复杂度为 7。允许的最大值为 5
Warning Function 'getPositionValue' has a complexity of 7. Maximum allowed is 5
问:
我试图摆脱我项目中的所有警告,但我偶然发现“警告函数'getPositionValue'的复杂度为 7。允许的最大值为 5 英寸,我不确定如何解决它。这是一个.js文件。
代码如下:
export function getPositionValue(station) {
const { latitude, longitude } = station;
if (latitude && longitude) {
return `${latitude}, ${longitude}`;
}
if (latitude && !longitude) {
return `${latitude}, 0`;
}
if (!latitude && longitude) {
return `0, ${longitude}`;
}
return `${0}, ${0}`;
}
欢迎任何了解如何解决此警告的想法!
答:
0赞
Elvis Adomnica
10/6/2023
#1
您可以在解构中使用默认值,因此您的函数可能如下所示:
export function getPositionValue(station) {
const { latitude = 0, longitude = 0 } = station;
return `${latitude}, ${longitude}`;
}
评论
0赞
VLAZ
10/6/2023
getPositionValue({latitude: null})
1赞
Estus Flask
10/6/2023
${latitude || 0}, ${longitude || 0}
在这种情况下更普遍和可取
0赞
Elvis Adomnica
10/6/2023
@VLAZ如果输入中的可能值是“null”,则可以更改为: ''' export function getPositionValue(station) { const { latitude, longitude} = station; return${latitude || 0}, ${longitude || 0}
; }```
2赞
Bruno Miguel Groth
10/6/2023
#2
如果您使用的是 ESLint,则此错误是指您的代码在返回某些内容之前可以传递的路径数量。您可以在 https://eslint.org/docs/latest/rules/complexity 中查看此规则的详细信息。
为了解决这个问题,你可以根据文档使用“if - else”而不是“if - if - if”序列。
此方法可以有一个返回行,并返回如下内容:
export function getPositionValue(station) {
const { latitude, longitude } = station;
return `${latitude ?? '0' }, ${longitude ?? '0'}`
}
这是一个 Nullish 合并运算符,如果存在,则返回值,否则返回 0。
此外,您可以将 ES 配置 (.eslintrc.cjs) 中的最大复杂度更改为 7(不推荐)。
希望我能帮到你。
评论
0赞
Bruno Miguel Groth
10/18/2023
此答案已被编辑。查看退货行以获取更适用的解决方案。
评论
if