当数组上的every()返回false时设置对象属性

时间:2017-10-02 06:47:28

标签: javascript ecmascript-6 aurelia ecmascript-5

我终于使用了另一种逻辑(使用“let”和break),但我很乐意(如果可行的话)另一种解决方案: 我已经构建了一个验证服务,它迭代(注入)包含每个表达式的正则表达式和相关消息(和输入元素)的对象列表。我正在使用every()方法迭代正则表达式。在测试正则表达式时,服务知道返回true或false。 问题是除了得到true \ false我希望服务的使用者获得相关的消息和输入元素。所以,在服务类中我有2个属性(让我们称之为“消息”和“元素”),我想相应地设置它们。但是,当我在每一个的背景下 - “这个”指的是上下文而不是类。我想把这两个属性作为参数发送到每个方法。这是最好的做法吗? 见相关代码:

export class userValidation 
{
    constructor() {
       this.validationMessage = '';
       this.validationElement = '';
//}

validateByExpression(elementValidator, valueToValidate, functionToExec) {
  var validationMessage = this.validationMessage;//Trying to get reference -  no go
   if (elementValidator.regex.test(valueToValidate) == false) 
   {
     //This is the part where I need to store\return the relevant message
     validationMessage = elementValidator.message; // fails
     return false;
   }  
   else 
   {
     return true;
   }
  }
  validate(validationElement, elementName, valueToValidate) 
  {
    var regexExpList = new Array(validationElement);
    var getValidationMessage = this.getValidationMessage;
    var validateByExpression = this.validateByExpression;
    var validationMessage = this.validationMessage;
    return regexExpList.every(function(regexExp) { return 
     getValidationMessage(validateByExpression, regexExp[elementName],         
     valueToValidate, validationMessage) });
 }
}

0 个答案:

没有答案