如果在Typescript或JavaScript Etherthan Switch和Ternary Operator中嵌套的替代方案
目前,我正在使用ESLINT来降低代码的复杂性,因此为了使我想将IF-ELSE代码降低到较少的复杂性。我有以下代码。
if (sortBy.length && sortBy == 'updated_at') {
createQuery
.distinctOn(['adjustments.updated_at', 'adjustments.id'])
.orderBy('adjustments.updated_at', order && order.length ? order :
DESC')
.addOrderBy('adjustments.id', order && order.length ? order :
'DESC');
} else if (sortBy.length && sortBy == 'default_priority') {
createQuery
.distinctOn(['adjustments.default_priority',
'adjustments.id', 'adjustments.priority_action_value'])
.orderBy('adjustments.default_priority', order &&
order.length ? order : 'DESC')
.addOrderBy('adjustments.priority_action_value', 'DESC');
} else {
createQuery
.distinctOn(['adjustments.created_at', 'adjustments.id'])
.orderBy('adjustments.created_at', order && order.length ?
order : 'DESC')
.addOrderBy('adjustments.id', order && order.length ? order
: 'DESC');
}
Currently I am using ESLint to reduce the complexity of code, so in order to that I want to reduce my if-else code into less complexity. I have the following code.
if (sortBy.length && sortBy == 'updated_at') {
createQuery
.distinctOn(['adjustments.updated_at', 'adjustments.id'])
.orderBy('adjustments.updated_at', order && order.length ? order :
DESC')
.addOrderBy('adjustments.id', order && order.length ? order :
'DESC');
} else if (sortBy.length && sortBy == 'default_priority') {
createQuery
.distinctOn(['adjustments.default_priority',
'adjustments.id', 'adjustments.priority_action_value'])
.orderBy('adjustments.default_priority', order &&
order.length ? order : 'DESC')
.addOrderBy('adjustments.priority_action_value', 'DESC');
} else {
createQuery
.distinctOn(['adjustments.created_at', 'adjustments.id'])
.orderBy('adjustments.created_at', order && order.length ?
order : 'DESC')
.addOrderBy('adjustments.id', order && order.length ? order
: 'DESC');
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
订单吗?。订单:“”
在此处如果存在订单,则将检查其长度。
但是在这里我认为
order.length
返回一个值,因此您可以写下:You can use
order?.length ? order : ""
Here if order exist then it will check for its length.
But here I think
order.length
returns a value so you might write: