Снижение функции, возвращающей присваивание, вызывает ошибку (проблема ESLint: нет возврата) - PullRequest
0 голосов
/ 12 мая 2018

Мой код (который работает):

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

По сути, я просто хочу сложить все остатки монет в моем портфеле, однако получаю ошибку eslint.

Функция стрелки не должна возвращать назначение.

enter image description here

Погуглил я нашел это: https://eslint.org/docs/rules/no-return-assign

Одним из интересных, а иногда и запутанных аспектов JavaScript является то, что назначение может происходить практически в любой точке. Из-за этого ошибочный знак равенства может в конечном итоге вызвать назначение, когда истинное намерение состояло в сравнении. Это особенно верно при использовании оператора возврата.

Вот пример того, что делать:

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

Однако это то, что я реализовал, но Эслинт все еще жалуется ... Есть ли способ обновить мой блок кода выше, чтобы он прошел?

1 Ответ

0 голосов
/ 12 мая 2018

из спецификации.(здесь MDN )

Метод redu () применяет функцию к аккумулятору и каждому элементу в массиве (слева направо), чтобы уменьшитьк одному значению.


Поскольку ваш bal является вашим аккумулятором , просто наберите bal + parseInt(coin.balance)

...