0

I have a data JSON data which looks like this

  [
   {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}
  ]

basically, I want to sum the total sales value in gen-acute-sales-before-returns

I am trying this

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

It is giving error

Uncaught (in promise) ReferenceError: acute is not defined

Saurabh
  • 1,592
  • 2
  • 14
  • 30
  • 2
    You can't access JavaScript variable names with dashes with dot notatation. You need to use bracket notation. So `a["gen-acute-sales-before-returns"]` and not `a.gen-acute-sales-before-returns` – Benjamin Gruenbaum Oct 26 '18 at 19:41

1 Answers1

0

That is because for the JSON keyValue, you are not able to use the -. So with below code it will work.

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
awmidas
  • 653
  • 5
  • 13