我有switch case
:
var rollNumValue = "1001";
switch (someVariable) {
case 'A':
urlKey = 'abc/api/01';
keyField = { rollNo: rollNumValue};
break;
case 'B':
urlKey = 'abc/api/02';
keyField = { rollNo: rollNumValue};
break;
default:
urlKey = 'abc/api/03';
keyField = { serialNumber : rollNumValue};
}
我想将其转换为三元条件,以便减少代码行数。
为什么吗
我必须将代码存储在数据库中。
修改
default:
urlKey = 'abc/api/03';
keyField = { serialNumber : rollNumValue};
}
答案 0 :(得分:0)
你可能会这样做:
urlKey = (someVariable == 'A') ? 'abc/api/01' :
(someVariable == 'B') ? 'abc/api/02' : 'abc/api/03';
keyField = { rollNo: rollNumValue};
答案 1 :(得分:0)
只有ternary
运算符,您的代码将无法读取,但您可以使用此代码减少代码数量。使用ternary
运算符并将keyField = { rollNo: rollNumValue};
从三元运算符移出。
var rollNumValue = "1001";
var keyField = { rollNo: rollNumValue};
var someVariable = 'A';
var urlKey = someVariable === 'A' ? 'abc/api/01' : someVariable === 'B' ? 'abc/api/02' : 'abc/api/03';
console.log(urlKey);

或者有财产权限。 JavaScript允许您使用另一个变量访问它的属性。只需使用[]
括号语法。
var rollNumValue = "1001";
var apis = { 'A': 'abc/api/01', 'B': 'abc/api/02', otherCase: 'abc/api/03' };
var keyField = { rollNo: rollNumValue};
var someVariable = 'A';
var urlKey = apis[someVariable] || apis.otherCase;
console.log(urlKey);

答案 2 :(得分:0)
您可以使用对象而不是switch
语句,这可以很容易地序列化。
var rollNumValue = "1001",
values = { A: 'abc/api/01', B: 'abc/api/02', default: 'abc/api/03' },
keyField = { rollNo: rollNumValue},
urlKey = values[someVariable] || values.default;
答案 3 :(得分:0)
声明对象
var data = {A: "01", B: "02"};
然后您可以轻松转换下面的开关
urlKey = 'abc/api/' + (data[someVariable] || "03");
keyField = { rollNo: rollNumValue};
答案 4 :(得分:0)
当然可以。在ES6对象解构的帮助下,您可以简单地执行以下操作;
var rollNumValue = "1001",
urlKey,
keyField,
someVariable;
({urlKey,keyField} = someVariable === "A" ? {urlKey: 'abc/api/01', keyField: {rollNo: rollNumValue}}
: someVariable === "B" ? {urlKey: 'abc/api/02', keyField: {rollNo: rollNumValue}}
: {urlKey: 'abc/api/03', keyField: {rollNo: rollNumValue}});
console.log(urlKey);
console.log(keyField);