ESLint中的循环问题

时间:2019-02-20 20:09:00

标签: javascript

我对ESLint有问题,我不知道该怎么办,因为没有它,我将无法前进。我正在做的是将接到的数字连接起来,例如:[“ 1”,“ 2”]输出将是:12

    let _sortItem = '';
    for (var p in this.state.sortItem2) {
      _sortItem += this.state.sortItem2[p];
    }
    this._month = '';
    for (var m in this.state.sortItem1) {
      this._month += this.state.sortItem1[m];
    }
  

ESLint:for..in循环遍历整个原型链,其中   几乎从来不是您想要的。使用Object。{keys,values,entries},然后遍历结果数组。 (无限制语法

如何使此方法对ESLint有效?我知道已经有其他问题,但是下一个代码对我不起作用。

Object.keys( this.state.sortItem2).forEach(function(p) {
  yield put(setCurrentValue(p, currentValues[p]));
})

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以像这样重构第一个函数:

Object.keys(this.state.sortItem2).forEach(key => {
 _sortItem += this.state.sortItem2[key]
})

现在,它将仅滚动显示您分配给对象的属性,而不是所有继承的内容。

答案 1 :(得分:0)

可接受的答案很好,但是当您实际上只对值感兴趣时,使用Object.keys并不是最佳解决方案:

Object.values(this.state.sortItem2).forEach(value => {
  _sortItem += value;
});

或者,用for .. of

for (let value of Object.values(this.state.sortItem2)) {
  _sortItem += value;
}

或更简单地说:

const _sortItem = Object.values(this.state.sortItem2).join('');