[英]Writing nested if else into ternary operator
我已经嵌套了 if else 语句,是否有任何解决方案可以将其转换为三元运算符?
let widthStyledMeter;
if (direction === 'horizontal') {
if(size === "full"){
widthStyledMeter = '100%';
}else{
widthStyledMeter = length;
}
} else {
if(size === "full"){
widthStyledMeter = '100%';
}else{
widthStyledMeter = thickness;
}
}
这是使用三元运算符的方法:
let widthStyledMeter, direction = "vertical", size = "100%", length = 100, thickness = 20; direction === "horizontal"? (widthStyledMeter = size === "full"? "100%": length): (widthStyledMeter = size === "full"? "100%": thickness); console.log(widthStyledMeter);
此外,由于您确定size
何时为"full"
,那么widthStyledMeter
将始终为"100%"
,因此最好先检查size
,然后再检查direction
。
let direction = "vertical", size = "100%", length = 100, thickness = 20, widthStyledMeter = size === "full"? "100%": direction === "horizontal"? length: thickness; console.log(widthStyledMeter);
尽管这不太可读,但它看起来像这样:
const widthStyledMeter = size === "full" ? "100%" : (direction === 'horizontal' ? length : thickness);
您在此处设置了一个通用值,即size == "full" = "100%"
,因为 else 语句没有条件,您可以减少它以避免size = "full"
双重检查
[编辑] 更易读的方式是:
let widthStyledMeter;
if (size === "full") {
widthStyledMeter = "100%";
} else {
widthStyledMeter = direction === "horizontal" ? length : thickness ;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.