【问题标题】:array reduce is not working in javascript [duplicate]数组减少在javascript中不起作用[重复]
【发布时间】:2018-10-26 19:40:25
【问题描述】:

我有一个数据 JSON 数据,看起来像这样

  [
   {gen-acute-sales-before-returns: 8112.755},
   {gen-acute-sales-before-returns: 6198.77},
   {gen-acute-sales-before-returns: 8112.755},
   {gen-acute-sales-before-returns: 6198.77},
   {gen-acute-sales-before-returns: 8112.755},
   {gen-acute-sales-before-returns: 6198.77},
   {gen-acute-sales-before-returns: 8112.755},
   {gen-acute-sales-before-returns: 6198.77}
  ]

基本上,我想在 gen-acute-sales-before-returns

中总结总销售额

我正在尝试这个

data.reduce((a, b) => ({totalSales: a.gen-acute-sales-before-returns + b.gen-acute-sales- before-returns})))

报错

未捕获(承诺中)ReferenceError:未定义急性

【问题讨论】:

  • 您不能访问带有点符号的破折号的 JavaScript 变量名。您需要使用括号表示法。所以a["gen-acute-sales-before-returns"] 而不是a.gen-acute-sales-before-returns

标签: javascript arrays json object ecmascript-6


【解决方案1】:

那是因为对于 JSON 键值,您无法使用 -。 所以使用下面的代码就可以了。

let values = [
   {"gen-acute-sales-before-returns": 8112.755},
   {"gen-acute-sales-before-returns": 6198.77},
   {"gen-acute-sales-before-returns": 8112.755},
   {"gen-acute-sales-before-returns": 6198.77},
   {"gen-acute-sales-before-returns": 8112.755},
   {"gen-acute-sales-before-returns": 6198.77},
   {"gen-acute-sales-before-returns": 8112.755},
   {"gen-acute-sales-before-returns": 6198.77}
 ]

values.reduce(
    (accumulator, currentValue) => accumulator + currentValue["gen-acute-sales-before-returns"]
    ,0
);


// 57246.09999999999

【讨论】:

  • 顺便说一句,我看不到JSON
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-10
  • 2019-01-26
  • 2016-12-01
  • 2019-07-20
  • 1970-01-01
  • 2014-08-20
  • 1970-01-01
相关资源
最近更新 更多