gpt4 book ai didi

javascript - 需要对象字面量函数中 switch case 的默认值的等效项

转载 作者:行者123 更新时间:2023-12-02 21:56:02 24 4
gpt4 key购买 nike

在 switch 情况下,默认值将不是预期情况。我必须用对象字面量函数替换我的 switch case,以减少圈复杂度。

function test(){
const options = getOptions();
switch(options){
case 'a':
return 'foo';
case 'b'
return 'bar';
default:
return 'Nothing';
}
}

我写的替换函数:

function test(){
const options = getOptions();
return {
'a': 'foo',
'b': 'bar',
'': 'Nothing',
null: 'Nothing',
undefined: 'Nothing'
}[options]
}

test();

问题是除 a,b 之外的任何字母都会返回 undefined,这与默认情况下处理所有其他选项的 switch case 不同。

我尝试过这个:

function test(){
const options = getOptions();
const default = new RegExp([^c-zC-Z], 'g');
return {
'a': 'foo',
'b': 'bar',
'': 'Nothing',
null: 'Nothing',
undefined: 'Nothing',
default: 'Nothing'
}[options]
}

上面的正则表达式解决了我对覆盖除 'a'、'b' 之外的所有内容的担忧,但范围不在 return 语句内,默认值无法识别。请建议默认情况。

最佳答案

你可以尝试这个方法

function test(){
const result = {
'a': 'foo',
'b': 'bar'
}[getOptions()];
return result ? result : 'Nothing';
}

test();

关于javascript - 需要对象字面量函数中 switch case 的默认值的等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60007247/

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