switch 语句中每个 case 语句的紧凑一行 - JavaScript
Compact one-liner for each case statement in a switch statement - JavaScript
我找不到任何关于是否可以在 switch 语句中将 case
语句写在一行中的文档或问题,也找不到将它们写在 [= 中的一行中的最佳实践和方法是什么26=]是。
最相关的问题是:CodeGrepper Question and Switch statement for multiple cases in JavaScript
我目前有一个带有 switch 语句的函数,returns 产品名称:
function returnProduct(product) {
switch (product) {
case 'aa': case 'AApple':
return 'AApple';
case 'bb': case 'BananaBall':
return 'BananaBall';
case 'ee': case 'ElephantElf':
return 'ElephantElf';
default:
return 'Sorry we don\'t have that yet';
}
}
console.log(returnProduct('aa'));
console.log(returnProduct('error'));
console.log(returnProduct('ee'));
console.log(returnProduct('BananaBall'));
解决方案 1
感谢@Ryan Wheale、@Bergi 和@T.J。 Crowder 帮助我意识到,由于 Javascript 不需要换行符,所以它可以全部写在由 ;
分隔的一行上,我不需要在周围放置任何 {}
return 语句。虽然下面的代码片段确实回答了我的问题,但同样重要的是要提到像这样的一行代码根本不可读,应该避免。
function returnProduct(product) { switch (product) { case 'aa': case 'AApple': return 'AApple'; case 'bb': case 'BananaBall': return 'BananaBall'; case 'ee': case 'ElephantElf': return 'ElephantElf'; default: return 'Sorry we don\'t have that yet'; } } console.log(returnProduct('aa')); console.log(returnProduct('error')); console.log(returnProduct('ee')); console.log(returnProduct('BananaBall'));
- 解决方案 2:此解决方案更具可读性,并且仍然实现了我最初创建紧凑
switch
语句的目标。
function returnProduct(product) {
switch (product) {
case 'aa': case 'AApple': return 'AApple';
case 'bb': case 'BananaBall': return 'BananaBall';
case 'ee': case 'ElephantElf': return 'ElephantElf';
default: return 'Sorry we don\'t have that yet';
}
}
console.log(returnProduct('aa'));
console.log(returnProduct('error'));
console.log(returnProduct('ee'));
console.log(returnProduct('BananaBall'));
这是我提出的第一个解决方案,它解决了我的问题,但我没有对其进行足够的测试并且出现了一些社区帮助我修复的错误。
我希望提出相同问题的其他人能够发现这是对我遇到的相同问题的有用答案。
你好像漏掉了 break 语句。
或者尝试使用 dictionary
var x ='aa':'AApple','AApple':'AApple','bb':'BananaBall',
'BananaBall':'BananaBall'};
var key='aa';
var z;
if(x[key] !== undefined)
return x[key];
我找不到任何关于是否可以在 switch 语句中将 case
语句写在一行中的文档或问题,也找不到将它们写在 [= 中的一行中的最佳实践和方法是什么26=]是。
最相关的问题是:CodeGrepper Question and Switch statement for multiple cases in JavaScript
我目前有一个带有 switch 语句的函数,returns 产品名称:
function returnProduct(product) {
switch (product) {
case 'aa': case 'AApple':
return 'AApple';
case 'bb': case 'BananaBall':
return 'BananaBall';
case 'ee': case 'ElephantElf':
return 'ElephantElf';
default:
return 'Sorry we don\'t have that yet';
}
}
console.log(returnProduct('aa'));
console.log(returnProduct('error'));
console.log(returnProduct('ee'));
console.log(returnProduct('BananaBall'));
解决方案 1
感谢@Ryan Wheale、@Bergi 和@T.J。 Crowder 帮助我意识到,由于 Javascript 不需要换行符,所以它可以全部写在由
;
分隔的一行上,我不需要在周围放置任何{}
return 语句。虽然下面的代码片段确实回答了我的问题,但同样重要的是要提到像这样的一行代码根本不可读,应该避免。
function returnProduct(product) { switch (product) { case 'aa': case 'AApple': return 'AApple'; case 'bb': case 'BananaBall': return 'BananaBall'; case 'ee': case 'ElephantElf': return 'ElephantElf'; default: return 'Sorry we don\'t have that yet'; } } console.log(returnProduct('aa')); console.log(returnProduct('error')); console.log(returnProduct('ee')); console.log(returnProduct('BananaBall'));
- 解决方案 2:此解决方案更具可读性,并且仍然实现了我最初创建紧凑
switch
语句的目标。
function returnProduct(product) {
switch (product) {
case 'aa': case 'AApple': return 'AApple';
case 'bb': case 'BananaBall': return 'BananaBall';
case 'ee': case 'ElephantElf': return 'ElephantElf';
default: return 'Sorry we don\'t have that yet';
}
}
console.log(returnProduct('aa'));
console.log(returnProduct('error'));
console.log(returnProduct('ee'));
console.log(returnProduct('BananaBall'));
这是我提出的第一个解决方案,它解决了我的问题,但我没有对其进行足够的测试并且出现了一些社区帮助我修复的错误。
我希望提出相同问题的其他人能够发现这是对我遇到的相同问题的有用答案。
你好像漏掉了 break 语句。 或者尝试使用 dictionary
var x ='aa':'AApple','AApple':'AApple','bb':'BananaBall',
'BananaBall':'BananaBall'};
var key='aa';
var z;
if(x[key] !== undefined)
return x[key];