在Javascript中将条件语句转换为变量

在Javascript中将条件语句转换为变量,javascript,Javascript,我有以下代码,我在不同的地方使用 if(!value[field]){ errors[field] = `${FIELDS[field].errorMessage}`; } 可以在javascript中将其设置为变量吗 我想把它作为一个对象的属性,并从那里调用它。 下面是我的代码 _.each(FIELDS, (type, field) => { if (FIELDS[field].validate) { if (!value[f

我有以下代码,我在不同的地方使用

  if(!value[field]){
    errors[field] = `${FIELDS[field].errorMessage}`;    
  }  
可以在javascript中将其设置为变量吗

我想把它作为一个对象的属性,并从那里调用它。 下面是我的代码

   _.each(FIELDS, (type, field) => {
     if (FIELDS[field].validate) {
       if (!value[field]) {
         errors[field] = `${FIELDS[field].errorMessage}`;
       }

       switch (FIELDS[field].formType) {
         case "email":
           if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(value.email)) {
             errors.email = 'Invalid email address'
           }
         default:
           if (!value[field]) {
             errors[field] = `${FIELDS[field].errorMessage}`;
           }
       }
     }
   });
   return errors;
}

定义一个函数
setError

function setError() {
  if(!value[field]) {
    errors[field] = `${FIELDS[field].errorMessage}`;    
  }
}
将其放入要传递给
的箭头函数中。每个

然后,您要使用它的每个地方都只需调用它:

setError();
这就是函数的用途


但是,在代码中,您将执行两次,一次在顶部,另一次在
default
案例中。为什么要这样做?

定义一个函数
setError

function setError() {
  if(!value[field]) {
    errors[field] = `${FIELDS[field].errorMessage}`;    
  }
}
将其放入要传递给
的箭头函数中。每个

然后,您要使用它的每个地方都只需调用它:

setError();
这就是函数的用途


但是,在代码中,您将执行两次,一次在顶部,另一次在
default
案例中。为什么要这样做?

您可以尝试的一件事是将其作为字符串保存到变量中,并在需要时运行eval,但这可能有点慢,如果您的程序是异步的,则可能会出现问题

var condition ="if(!value[field]){errors[field]=`${FIELDS[field].errorMessage}`;}"
然后只要运行eval(condition)就可以了

for(var x = 0 ; eval(condition);x++){}

您可以尝试的一件事是将其作为字符串保存到变量中,并在需要时运行eval,但如果您的程序是异步的,则速度可能会有点慢,并且可能会出现问题

var condition ="if(!value[field]){errors[field]=`${FIELDS[field].errorMessage}`;}"
然后只要运行eval(condition)就可以了

for(var x = 0 ; eval(condition);x++){}

您可以添加完整的代码与演示。将什么设置为变量?变量不包含代码。你的意思是将它定义为一个可以从“不同地方”调用的函数吗?@Tushar我添加了我的演示code@torazaburo是的,我想做一些类似于var检查的事情={func:(function(){…;})(});但我想知道是否还有其他方法,比如
var isNotPresent=!值[字段]那样调用它,如果(不存在){…}
?这就是你的意思吗?你能用演示添加完整的代码吗。将什么设置为变量?变量不包含代码。你的意思是将它定义为一个可以从“不同地方”调用的函数吗?@Tushar我添加了我的演示code@torazaburo是的,我想做一些类似于var检查的事情={func:(function(){…;})(});但我想知道是否还有其他方法,比如
var isNotPresent=!值[字段]那样调用它,如果(不存在){…}
?这就是你的意思吗?