![](/img/trans.png)
[英]Different outputs using switch and if else statements in JavaScript
[英]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 解构在一个语句中获得buy
、 close
和pre
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";
如果你想避免switch
和if..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.