编程语言
首页 > 编程语言> > javascript-eslint错误“后卫”不明确如何使用后卫

javascript-eslint错误“后卫”不明确如何使用后卫

作者:互联网

我正在使用Cucumber js,并且我想填写应用程序中的某些字段,因此我正在使用for-in从rowHash获取数据,但是却收到错误消息“ for-body的主体in应该包装在if语句中,以过滤原型保护对象中不需要的属性.“我不确定如何在for内部使用if编码我的for-in.

这是我的代码:

this.fillRequiredfields = function(dataTable){
  var rows = dataTable.rowsHash();
  for (var row in rows) {
    var val = rows[row];

    if (row === 'firstname') {
      element(by.name('firstName')).sendKeys(val).isPresent();
    }
    if (row === 'lastname') {
      element(by.name('lastName')).sendKeys(val).isPresent();
    }
    if (row === 'emailaddress') {
      element(by.name('emailAddress')).sendKeys(val).isPresent();
    }
    if (row === 'displayname') {
      element(by.name('displayName')).sendKeys(val).isPresent();
    }
    if (row === 'password') {
      element(by.name('newPassword')).sendKeys(val).isPresent();
    }
  }
};

因此,当我尝试在git中进行提交时,我得到了eslint的“后卫”.如果有人可以解释我该怎么做,那如果很好的话.

希望您能够帮助我.

解决方法:

我已经解决了这个问题,就我而言,解决方案是:

代替

var val = rows[row];

我将if与hasOwnProperty()添加在一起,如下所示:

if (rows.hasOwnProperty(row))

所以代码是这样的:

for (var row in rows) {
  if (rows.hasOwnProperty(row)){

    if (row === 'firstname') {
      element(by.name('firstName')).sendKeys(rows[row]).isPresent();
    }
    if (row === 'lastname') {
      element(by.name('lastName')).sendKeys(rows[row]).isPresent();
    }
    if (row === 'emailaddress') {
      element(by.name('emailAddress')).sendKeys(rows[row]).isPresent();
    }
    if (row === 'displayname') {
      element(by.name('displayName')).sendKeys(rows[row]).isPresent();
    }
    if (row === 'password') {
      element(by.name('newPassword')).sendKeys(rows[row]).isPresent();
    }
  }
}

希望可以帮助别人.

标签:for-in-loop,eslint,automation,cucumber,javascript
来源: https://codeday.me/bug/20191110/2013708.html