如何使用带有switch语句的JavaScript + =

时间:2018-03-23 23:41:26

标签: javascript syntax switch-statement

我有以下内容:

.ypp

我想补充一下:

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语句一起使用,如上所示?

4 个答案:

答案 0 :(得分:2)

你将无法做到这一点。

另一种方法是使用 IIFE (Immediately Invoked Function Expression)

reshape

答案 1 :(得分:1)

我使用了一个对象:

textAlign

实例化一个抛弃对象(当然可以用更永久的对象替换)并查找当前的[ ]值。如果未找到任何条目,undefined表达式将返回||,因此// js addon.makeObject((err, obj) => { if (err) { /* handle error */ } console.log('New object ID=%d', obj.getID()); : }); 会提供默认值。

答案 2 :(得分:0)

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;

设置变量的值
switch

正如其他人也指出的那样,你当然可以用function包裹switch并让函数根据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";

答案 3 :(得分:0)

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)