-1

I would like to go from this:

[ { compID: 1, problem: 1, usersID: 1, completed: 1 },
  { compID: 1, problem: 1, usersID: 5, completed: 1 },
  { compID: 1, problem: 2, usersID: 1, completed: 0 },
  { compID: 1, problem: 2, usersID: 5, completed: 1 },
  { compID: 1, problem: 3, usersID: 1, completed: 1 },
  { compID: 1, problem: 3, usersID: 5, completed: 0 },
  { compID: 1, problem: 4, usersID: 1, completed: 0 },
  { compID: 1, problem: 4, usersID: 5, completed: 1 },
  { compID: 1, problem: 5, usersID: 1, completed: 1 },
  { compID: 1, problem: 5, usersID: 5, completed: 0 } ]

To this:

[ { compID: 1, problem: [1,2,3,4,5], usersID: 1, completed: [1,0,1,0,1] },

  { compID: 1, problem: [1,2,3,4,5], usersID: 5, completed: [1,1,0,1,0] } ]

I will need to do this manipulation for each usersID. Thank you

Dave Newton
  • 158,873
  • 26
  • 254
  • 302
singh3244
  • 21
  • 2
  • 2
    The posted question does not appear to include any attempt at all to solve the problem. Stack Overflow expects you to [try to solve your own problem first](https://meta.stackoverflow.com/questions/261592/), as your attempts help us to better understand what you want. Please edit the question to show what you've tried, so as to illustrate a specific roadblock you're running into in a [MCVE]. For more information, please see [ask] and take the [tour]. – CertainPerformance Nov 29 '19 at 00:24
  • maybe this stackoverflow answer (https://stackoverflow.com/questions/9016546/transform-json-object-to-another-format-it) may give you an idea of how to go about achieving what you intend to do. – Robert Dinaro Nov 29 '19 at 00:27

1 Answers1

1

you need to manipulate your array to get the result. You can try like below,

 var data = [ { compID: 1, problem: 1, usersID: 1, completed: 1 },
  { compID: 1, problem: 1, usersID: 5, completed: 1 },
  { compID: 1, problem: 2, usersID: 1, completed: 0 },
  { compID: 1, problem: 2, usersID: 5, completed: 1 },
  { compID: 1, problem: 3, usersID: 1, completed: 1 },
  { compID: 1, problem: 3, usersID: 5, completed: 0 },
  { compID: 1, problem: 4, usersID: 1, completed: 0 },
  { compID: 1, problem: 4, usersID: 5, completed: 1 },
  { compID: 1, problem: 5, usersID: 1, completed: 1 },
  { compID: 1, problem: 5, usersID: 5, completed: 0 } ]

var res ={};

data.map(d => {
  if(res[d.usersID]) {
    res[d.usersID].problem.push(d.problem);
    res[d.usersID].completed.push(d.completed);
  } else {
    res[d.usersID] = {compID: d.compID, problem: [d.problem], usersID: d.usersID, completed: [d.completed]  }
  }
})

console.log(Object.values(res))
Harish
  • 1,841
  • 1
  • 13
  • 26