gpt4 book ai didi

javascript - 多个嵌套 switch 语句的最佳替代方案?

转载 作者:行者123 更新时间:2023-11-30 09:17:08 24 4
gpt4 key购买 nike

我有一个带有多个嵌套 switch case 的 JavaScript 函数,这完全是一团糟。这几个月功能一直在扩展,现在我想重组代码。在每种情况下,都应将不同的值推送到已存在的变量。

这是我的代码示例:

switch(var1){
case 1:
switch(var2){
case 0:
switch(var3){
case 'test':
switch(i){
case 0: endresult.push({id: i, content: '123'}); break;
case 2: endresult.push({id: i, content: '124'}); break;
}
break;
default:
endresult.push({id: i, content: '125'}); break;
}
break;
case 1:
endresult.push({id: i, content: '126'}); break;
}
break;
case 2:
switch(var2){
case 0:
switch(i){
case 0: endresult.push({id: i, content: '127'}); break;
case 2: endresult.push({id: i, content: '128'}); break;
}
break;
case 1:
switch(i){
case 0: endresult.push({id: i, content: '128'}); break;
case 2: endresult.push({id: i, content: '129'}); break;
}
break;
}
break;
}

重写它的最佳方法是什么?

最佳答案

拥有所有可能变体及其值的映射:

// Key is composite of `"" + var1 + "_" + var2 + "_" + i` and trimmed `_` from back

let tree = {
'1_0_test_0': '123',
'1_0_test_2': '124',
'1_0_test': '125',
'1_0_1': '126',
...
}

let key = ("" + var1 + var2 + i).replace(/_{2,}|_+$/, '');

if (typeof tree[key] !== 'undefined') {
endresult.push({id: i, content: tree[key]});
}

关于javascript - 多个嵌套 switch 语句的最佳替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54303423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com