Javascript 更简洁地编写多个逻辑运算符
我试图用更简洁的方式编写多个逻辑运算符。在我的例子中,我希望函数只在四个输入都是数字时运行。我能想到的唯一方法是使用&&,使用多个if(如下所示),或使用switch,将它们全部写入一个if语句中。但我想知道是否有更简洁的方法Javascript 更简洁地编写多个逻辑运算符,javascript,logical-operators,Javascript,Logical Operators,我试图用更简洁的方式编写多个逻辑运算符。在我的例子中,我希望函数只在四个输入都是数字时运行。我能想到的唯一方法是使用&&,使用多个if(如下所示),或使用switch,将它们全部写入一个if语句中。但我想知道是否有更简洁的方法 function fn() { const input = display.getInput(); if (input.p !== "" && !isNaN(input.p)) { if (input.d !=
function fn() {
const input = display.getInput();
if (input.p !== "" && !isNaN(input.p)) {
if (input.d !== "" && !isNaN(input.d)) {
if (input.s !== "" && !isNaN(input.s)) {
if (input.y !== "" && !isNaN(input.y)) {
if (input.y <= 100) {
/* run code */
}
}
}
}
}
}
函数fn(){
常量输入=display.getInput();
if(input.p!==“”&&&!isNaN(input.p)){
if(input.d!==“”&&&!isNaN(input.d)){
if(input.s!==“”&&&!isNaN(input.s)){
if(input.y!==“”&&&!isNaN(input.y)){
如果(input.y要准确回答您的问题,您可以这样做:
if (input.p !== "" && !isNaN(input.p) && input.d !== "" && !isNaN(input.d) ...
但事实上,您应该编写得更好。首先实现一个验证函数:
function isValid(property) {
return property !== "" && !isNaN(property);
}
function isEverythingValid(input) {
for (let property of ["p", "d", "s", "y"]) {
if (!isValid(input[property])) {
return false;
}
}
return input.y <= 100;
}
因此,如果:
if (isValid(input.p) && isValid(input.d) && ...
最后,您可能希望将所有内容都放入一个新函数中:
function isValid(property) {
return property !== "" && !isNaN(property);
}
function isEverythingValid(input) {
for (let property of ["p", "d", "s", "y"]) {
if (!isValid(input[property])) {
return false;
}
}
return input.y <= 100;
}
函数isEverythingValid(输入){
(出租[“p”、“d”、“s”、“y”]的财产){
如果(!isValid(输入[property])){
返回false;
}
}
return input.y要准确回答您的问题,您可以这样做:
if (input.p !== "" && !isNaN(input.p) && input.d !== "" && !isNaN(input.d) ...
但事实上,您应该编写得更好。首先实现一个验证函数:
function isValid(property) {
return property !== "" && !isNaN(property);
}
function isEverythingValid(input) {
for (let property of ["p", "d", "s", "y"]) {
if (!isValid(input[property])) {
return false;
}
}
return input.y <= 100;
}
因此,如果:
if (isValid(input.p) && isValid(input.d) && ...
最后,您可能希望将所有内容都放入一个新函数中:
function isValid(property) {
return property !== "" && !isNaN(property);
}
function isEverythingValid(input) {
for (let property of ["p", "d", "s", "y"]) {
if (!isValid(input[property])) {
return false;
}
}
return input.y <= 100;
}
函数isEverythingValid(输入){
(出租[“p”、“d”、“s”、“y”]的财产){
如果(!isValid(输入[property])){
返回false;
}
}
返回input.y