Angular 角度:用于开关与dict查找
我正试图决定使用哪个选项通过URL参数进行解析,这两个选项似乎都不太理想,在我看来,必须有更好的方法来处理这个问题-如果有,请建议合理的选项#3。假设多达40个参数 选项1 缺点:复杂度O(n*k),其中n为参数数,k为切换案例数;看起来也很糟糕Angular 角度:用于开关与dict查找,angular,typescript,Angular,Typescript,我正试图决定使用哪个选项通过URL参数进行解析,这两个选项似乎都不太理想,在我看来,必须有更好的方法来处理这个问题-如果有,请建议合理的选项#3。假设多达40个参数 选项1 缺点:复杂度O(n*k),其中n为参数数,k为切换案例数;看起来也很糟糕 for(let param in params) { let value = params[param]; switch(param){ case 'param1': { doSomethingWithParam1(valu
for(let param in params) {
let value = params[param];
switch(param){
case 'param1': {
doSomethingWithParam1(value);
break;
}
case 'param2': {
doSomethingWithParam2(value);
break;
}
}
}
选项2
优点:复杂性O(k)
缺点:看起来更糟
let param = '';
param = 'param1';
if(param in params){
let value = params[param];
doSomethingWithParam1(value);
}
param = 'param2';
if(param in params){
let value = params[param];
doSomethingWithParam2(value);
}
TypeScript是JavaScript的超集,因此您可以使用函数创建对象并按键调用它们:
let函数={
f1:函数(){
log(`it is f1 function`)
},
f2:函数(){
log(`it is f2 function`)
},
f3:函数(){
log(`it is f3 function`)
}
}
设param='';
param='f1';
log(函数[param]())代码>