我有条件声明,如果可能的话我想改进,因为我觉得它很笨拙:
let action
if(options.add) {
action = 'ADD'
} else if(options.update) {
action = 'UPDATE'
} else {
action = 'REMOVE'
}
是否可以将其设为某种开关或三元组?
答案 0 :(得分:1)
您的代码现在看起来不错。但如果你还在寻找替代品,那么Ternary?
let action = options.add ? "ADD" : (options.update ? "UPDATE" : "REMOVE") ;
答案 1 :(得分:1)
如果您想要更多动态解决方案,您可以创建一系列操作,然后使用该数组上的find在对象中查找该操作并将其分配给变量或设置默认值REMOVE
。
let action;
let options = {add: 1}
let actions = ['add', 'update', 'remove'];
action = (actions
.find(a => options[a]) || 'remove')
.toUpperCase();
console.log(action)
您还可以创建一个将选项对象和返回操作值的函数。
let action;
var actions = ['add', 'update', 'remove'];
function setAction(options = {}) {
return (actions.find(a => options[a]) || 'remove')
.toUpperCase();
}
action = setAction({add: 1});
console.log(action)
action = setAction();
console.log(action)
答案 2 :(得分:0)
如果您想要三元操作,请尝试此操作
let action;
action = (options.add) ? 'ADD' : ((options.update) ? 'UPDATE' : 'REMOVE');
答案 3 :(得分:0)
action = options.add && 'ADD' || options.update && 'UPDATE' || 'REMOVE'