如何使用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)