Назначение на rValue - PullRequest
       292

Назначение на rValue

0 голосов
/ 25 мая 2019

Получение сообщения об ошибке для этой функции уменьшения

Если бы это было сначала

const populationTotal = 0;
let populationTotal = zooAnimals.reduce((populationTotal, populationAmount) => {
  return populationTotal + populationAmount.population;
}, 0);

console.log(populationTotal);

Пытаюсь сейчас

const populationTotal = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
const reducer = (populationTotal, 10) => populationTotal +

console.log(populationTotal.reduce(reducer));

Получение ошибки SyntaxError: присвоение rvalue (190: 34)

1 Ответ

0 голосов
/ 25 мая 2019
  1. Вы определяете populationTotal как const, затем пытаетесь определить его снова и установить для него значение.Это не то, как const работает.Вы можете установить значение const только в той строке, в которой вы его определили.

  2. Array.reduce работает с accumulator, current value, indexи array параметров, но он в основном используется с первыми двумя.Он также принимает значение по умолчанию для аккумулятора в качестве последнего параметра:

Функция редуктора принимает четыре аргумента:

  • Аккумулятор (акк)
  • Текущее значение (cur)
  • Текущий индекс (idx)
  • Source Array (src)

let data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

// Used all four parameters but they are not needed specifically in this case, Just for illustration purposes
let result = data.reduce((acc, cur, idx, src) => acc + cur, 0)

console.log(result)

Если вы хотите определить редуктор снаружи как отдельную функцию, вы также можете:

const data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
const reducer = (acc, curr) => acc + curr

console.log(data.reduce(reducer, 0));
...