JSFiddle - React, Tailwind, and code Playground

by ramnathv

CoffeeScript

data = [
  {"Country":"AAAA","Region":"XXXX","Year":2001,"V1":12,"V2":13},  
  {"Country":"BBBB","Region":"YYYY","Year":2001,"V1":14,"V2":15},
  {"Country":"AAAA","Region":"XXXX","Year":2002,"V1":36,"V2":56},
  {"Country":"AAAA","Region":"XXXX","Year":1999,"V1":45,"V2":67}
]

zip_and_sort = (d, year, v) ->
  tmp  = _.zip(_.pluck(d, year), _.pluck(d, v))
  _.sortBy(tmp, (y) -> y[0])

x = _.chain(data)
  .groupBy((d) -> d.Country)
  .map((d, k) -> {
     "Country": k
     "Region": d[0].Region
     "V1": zip_and_sort(d, "Year", "V1")
     "V2": zip_and_sort(d, "Year", "V2")
  })

console.log(JSON.stringify(x.value()))