【问题标题】:Assigning to rValue分配给 rValue
【发布时间】:2019-05-24 22:49:38
【问题描述】:

得到关于这个reduce函数的错误信息

一开始有这个

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 错误:分配给右值 (190:34)

【问题讨论】:

  • 第一个错误:我得到的是 Uncaught SyntaxError: Identifier 'populationTotal' has been declared

标签: javascript arrays constants reduce


【解决方案1】:
  1. 您将populationTotal 定义为const,然后尝试再次定义它并为其设置一个值。这不是const 的工作方式。您只能在定义它的行将 value 设置为 const。

  2. Array.reduceaccumulatorcurrent valueindexarray 参数一起使用,但它主要与前两个一起使用。它还接受累加器的默认值作为其最后一个参数:

reducer 函数有四个参数:

  • 累加器 (acc)
  • 当前值(当前)
  • 当前指数 (idx)
  • 源数组 (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)

如果你想将 reducer 定义为一个单独的函数,你也可以:

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

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

【讨论】:

    猜你喜欢
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 2017-10-31
    • 2013-10-15
    • 1970-01-01
    相关资源
    最近更新 更多