减少函数返回赋值抛出错误(ESLint问题:no-return-assign)

时间:2018-05-12 18:34:46

标签: javascript return eslint

我的代码(有效):

const calculateBalance = (coins) => {
  console.log('coins', coins);
  return coins.reduce((bal, coin) => (bal += parseInt(coin.balance)), 0);
};

基本上我只想在我的投资组合中添加所有硬币余额,但是我得到了一个小的错误。

  

箭头功能不应该返回赋值。

enter image description here

谷歌搜索我发现了这个:https://eslint.org/docs/rules/no-return-assign

  

JavaScript的一个有趣且有时令人困惑的方面是分配几乎可以在任何时候发生。因此,当真正意图进行比较时,错误的等号最终会导致分配。使用return语句时尤其如此。

他们在这里有一个例子:

function doSomething() {
    return (foo = bar + 2);
}

然而,这就是我实现的,但是eslint仍在抱怨...有没有办法更新我的代码块以使其通过?

1 个答案:

答案 0 :(得分:1)

从规格。 (这里MDN

  

reduce()方法对累加器和每个都应用一个函数   数组中的元素(从左到右)将其缩小为单个元素   值。

由于您的bal累加器,只需执行bal + parseInt(coin.balance)