繁体   English   中英

如何在不使用开关的情况下返回值,如果在 javascript 中使用 else

[英]How to return the value without using the switch and if else in javascript

我是新来的反应。 这里我有一个 object,它有一些预定义的值。 喜欢

{
    evalues: {
        status: {
            "statusVal": {
                "pre": "PRE",
                "buy": "BYE",
                "close": "CLOSE",
            }
        }
    }
}

我正在尝试返回一个不同的图标给定状态:

const getIcons = (givenStatus) =>
{
    let close = config?.appConfig?.evalues?.status?.statusVal.close
    let buy = config?.appConfig?.evalues?.status?.statusVal.buy
    let pre = config?.appConfig?.evalues?.status?.statusVal.pre

    if (givenStatus === close)
        return 'yellow'
    else if (givenStatus === buy)
        return 'green'
    else if (givenStatus === pre)
        return 'red'
}

还有另一种方法可以使用lodash吗?

我们可以使用 object 解构在一个语句中获得buyclosepre all。 使用您当前的代码,这可能尽可能干净:

const getIcons = status =>
{
    const { buy, close, pre } = config.appConfig.evalues.status.statusVal

    if (status === buy)
        return 'green'
    if (status === close)
        return 'yellow'
    if (status === pre)
        return 'red'
}

虽然如果值得到保证,您可以使用switch语句来代替:

const getIcons = status =>
{
    switch (status)
    {
        case 'BYE':   return 'green'
        case 'CLOSE': return 'yellow'
        case 'PRE':   return 'red'
    }
}

如果您不想使用 switch 和 if/else,也许您可以使用三元运算符,如下所示:

return givenStatus === "close" ? "yello" : givenStatus === "buy" ? "grenn" : givenStatus === "pre" ? "red" : null;

如果您确定 givenStatus 只能是这三个中的一个并且永远不会为空/为空,则可以缩短此时间;

return givenStatus === "close" ? "yello" : givenStatus === "buy" ? "grenn" : "red";

如果你想避免switchif..else ,你可以使用它

 var statusVal = { "pre": "PRE", "buy": "BYE", } var pre = (Object.values(statusVal).filter(i=>i === "PRE")).length? 'yellow': null; var buy = (Object.values(statusVal).filter(i=>i === "BYE")).length? 'grenn': null; var close = (Object.values(statusVal).filter(i=>i === "CLOSE")).length? 'red': null; console.log(pre); console.log(buy); console.log(close);

请尝试此代码,如何在不使用开关的情况下返回值以及 javascript 中的其他情况

function phoneticLookup(val) {
  var result = "";

  switch(val) {
    case "alpha": 
      result = "Adams";
      break;
    case "bravo": 
      result = "Boston";
      break;
    case "charlie": 
      result = "Chicago";
      break;
    case "delta": 
      result = "Denver";
      break;
    case "echo": 
      result = "Easy";
      break;
    case "foxtrot": 
      result = "Frank";
      break;
    default:
    result = '';
    break;

  }

  return result;
}

phoneticLookup("undefined");

我希望这段代码有用。

谢谢你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM