如何使用JavaScript+;=使用switch语句
我有以下资料:如何使用JavaScript+;=使用switch语句,javascript,syntax,switch-statement,Javascript,Syntax,Switch Statement,我有以下资料: let buttonClass = ''; buttonClass += link ? ' button-link ' : ''; 我想补充一点: let buttonClass = ''; buttonClass += link ? ' button-link ' : ''; buttonClass += (return switch(textAlign) { case "right": "ta-r" break;
let buttonClass = '';
buttonClass += link ? ' button-link ' : '';
我想补充一点:
let buttonClass = '';
buttonClass += link ? ' button-link ' : '';
buttonClass +=
(return switch(textAlign) {
case "right":
"ta-r"
break;
case "left":
"ta-l"
break;
default:
"ta-c"
})
以上是错误的。。。如何将+=
与如上所示的switch语句一起使用?本身不会返回可以插入到较大表达式中的值。它分支成一组执行的代码。一种简单的方法是通过开关设置变量的值:
let buttonClass = '';
buttonClass += link ? ' button-link ' : '';
var result = null; // Answer will wind up here
switch(textAlign) {
case "right":
result = "ta-r";
break;
case "left":
result = "ta-l";
break;
default:
result = "ta-c";
}
// Whatever the switch set the result to, use it here:
textAlign += result;
正如其他人所指出的,您当然可以使用函数
包装开关
,并让函数根据开关
的结果返回一个值
function wrapSwitch(tAlign){
switch(tAlign){
case "right":
return "ta-r";
case "left":
return "ta-l";
default:
return "ta-c";
}
}
textAlign += wrapSwitch(textAlign);
我会使用一个对象:
buttonClass += {
"right": "ta-r",
"left": "ta-l",
}[textAlign] || "ta-c";
它实例化一个丢弃对象(当然可以用一个更永久的对象替换),并查找当前的textAlign
值。如果没有找到条目,[]
表达式将返回未定义的
,因此|
提供默认值。您将无法执行此操作
另一种方法是使用
var textAlign='right';
var buttonClass=“类名——”
buttonClass+=(函数(){
开关(文本对齐){
案例“权利”:
返回“ta-r”
案例“左”:
返回“ta-l”
违约:
返回“ta-c”
}
})();
控制台日志(按钮类)代码>开关
不是表达式。它不能“代替”值使用。一个选项是使用带有开关返回的函数(内联/IIFE或非内联/IIFE)。谢谢用户。。你能给我举个例子让我标出答案吗?谢谢这里的简单。。。但是我需要构建buttonClass+=
@AnApprentice你已经得到的buttonClass
作业有什么问题吗?@AnApprentice啊,你编辑了你的问题,并对其进行了重大修改。请尽量不要这样做。@anaprentice唯一的区别是按钮类
显示在+=
的左侧,而不是文本对齐
。这太棒了。所以让我一接受就好了。谢谢关于堆栈溢出的回答应该包括对问题和解决方案的解释。请阅读
let buttonClass = '';
buttonClass += link ? ' button-link ' : '';
const switchFn = (textAlign) => {
switch(textAlign) {
case "right":
return "ta-r";
case "left":
return "ta-l";
default:
return "ta-c";
}
}
textAlign += switchFn(textAlign)