[英]How can I change the if else statement in the function with Ternary operator in JavaScript?
[英]How would I write this if else statement as ternary operator
这是一个初学者的问题,但我如何将这个 JavaScript 语句编写为三元运算符? 或者写这个的最干净/最优化的方式是什么?
if ($("#firstName,#lastName, #email, #message").filter(function() { return $(this).val(); }).length > 0) {
$("label").css(labelAnimation[0]);
} else {
$("label").css(labelAnimation[1]);
}
为了保持可读性,首先将 boolean 结果放入变量中。 然后将条件放在索引查找括号内:
const anyInputsFilled = $("#firstName,#lastName,#email,#message")
.filter(function () { return $(this).val(); })
.length > 0;
$("label").css(labelAnimation[anyInputsFilled ? 0 : 1]);
我建议先从labelAnimation
中提取值,例如:
const [anyFilledCSS, noneFilledCSS] = labelAnimation;
// ...
const anyInputsFilled = $("#firstName,#lastName,#email,#message")
.filter(function () { return $(this).val(); })
.length > 0;
$("label").css(anyInputsFilled ? anyFilledCSS : noneFilledCSS]);
你可以做这样的事情
$(
"#firstName,#lastName,#email,#message").filter(
function() {
return $(this).val();
}
).length > 0
)
? $("label").css(labelAnimation[0]) : $("label").css(labelAnimation[1])
或者在一行中:
$("#firstName,#lastName,#email,#message").filter(function() {return $(this).val();}).length > 0) ? $("label").css(labelAnimation[0]) : $("label").css(labelAnimation[1])
你可以写
$("label").css(labelAnimation[
$("#firstName,#lastName,#email,#message").filter(() => $(this).val())
.length > 0
? 1
: 0
])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.