How can I transform the next object array?

Cokoro R1

I have like 1 hour trying to do the next exercice, so I get looked and I was wondering If someone can help me with this.

Here is the array that I get from the Database Base Array Image

let response =
[{
    "name": "October : 2019",
    "userName": "Katherine Diaz",
    "newCases": 875,
    "recover": 8
  },
  {
    "name": "December : 2019",
    "userName": "Katherine Diaz",
    "newCases": 503,
    "recover": 38
  },
  {
    "name": "November : 2019",
    "userName": "Katherine Diaz",
    "newCases": 227,
    "recover": 14
  },
  {
    "name": "November : 2019",
    "userName": "Belyini Cabral",
    "newCases": 19,
    "recover": 14
  },
  {
    "name": "January : 2020",
    "userName": "Katherine Diaz",
    "newCases": 272,
    "recover": 123
  },
  {
    "name": "October : 2019",
    "userName": "Belyini Cabral",
    "newCases": 287,
    "recover": 1
  },
  {
    "name": "October : 2019",
    "userName": "N/A",
    "newCases": 3,
    "recover": 0
  },
  {
    "name": "January : 2020",
    "userName": "Mercedes Perez",
    "newCases": 65,
    "recover": 0
  },
  {
    "name": "February : 2020",
    "userName": "N/A",
    "newCases": 76,
    "recover": 0
  },
  {
    "name": "December : 2019",
    "userName": "N/A",
    "newCases": 136,
    "recover": 0
  },
  {
    "name": "November : 2019",
    "userName": "Mercedes Perez",
    "newCases": 15,
    "recover": 0
  },
  {
    "name": "January : 2020",
    "userName": "N/A",
    "newCases": 299,
    "recover": 0
  },
  {
    "name": "December : 2019",
    "userName": "Mercedes Perez",
    "newCases": 44,
    "recover": 0
  },
  {
    "name": "October : 2019",
    "userName": "Mercedes Perez",
    "newCases": 323,
    "recover": 0
  },
  {
    "name": "December : 2019",
    "userName": "Belyini Cabral",
    "newCases": 0,
    "recover": 11
  },
  {
    "name": "January : 2020",
    "userName": "Belyini Cabral",
    "newCases": 0,
    "recover": 11
  },
  {
    "name": "February : 2020",
    "userName": "Mercedes Perez",
    "newCases": 0,
    "recover": 20
  },
  {
    "name": "February : 2020",
    "userName": "Belyini Cabral",
    "newCases": 0,
    "recover": 9
  },
  {
    "name": "February : 2020",
    "userName": "Katherine Diaz",
    "newCases": 0,
    "recover": 43
  }
]

I would like to have like this... I have some (Math.round...) functions just to generate random data to test with a dashboard that I want to fill.

Transformation Image

            let premiere = [
            {
                name : 'October',
                user : ['Katherine Diaz', 'Belyini Cabral', 'Mercedes Perez', 'N/A'],
                newCases : [
                    Math.round(Math.random()*1000),
                    Math.round(Math.random()*1000),
                    Math.round(Math.random()*1000),
                    Math.round(Math.random()*1000)
                ],
                recovered :[
                    Math.round(Math.random()*800),
                    Math.round(Math.random()*800),
                    Math.round(Math.random()*800),
                    Math.round(Math.random()*800)
                ],
                monthRecovered : Math.round(Math.random()*800),
                monthNewCases : Math.round(Math.random()*1000)
            },
            {
                name : 'November',
                user : ['Katherine Diaz', 'Belyini Cabral', 'Mercedes Perez', 'N/A'],
                newCases : [
                    Math.round(Math.random()*1000),
                    Math.round(Math.random()*1000),
                    Math.round(Math.random()*1000),
                    Math.round(Math.random()*1000)
                ],
                recovered :[
                    Math.round(Math.random()*800),
                    Math.round(Math.random()*800),
                    Math.round(Math.random()*800),
                    Math.round(Math.random()*800)
                ],
                monthRecovered : Math.round(Math.random()*800),
                monthNewCases : Math.round(Math.random()*1000)
            },
            {
                name : 'December',
                user : ['Katherine Diaz', 'Belyini Cabral', 'Mercedes Perez', 'N/A'],
                newCases : [
                    Math.round(Math.random()*1000),
                    Math.round(Math.random()*1000),
                    Math.round(Math.random()*1000),
                    Math.round(Math.random()*1000)
                ],
                recovered :[
                    Math.round(Math.random()*800),
                    Math.round(Math.random()*800),
                    Math.round(Math.random()*800),
                    Math.round(Math.random()*800)
                ],
                monthRecovered : Math.round(Math.random()*800),
                monthNewCases : Math.round(Math.random()*1000)
            },
            {
                name : 'January',
                user : ['Katherine Diaz', 'Belyini Cabral', 'Mercedes Perez', 'N/A'],
                newCases : [
                    Math.round(Math.random()*1000),
                    Math.round(Math.random()*1000),
                    Math.round(Math.random()*1000),
                    Math.round(Math.random()*1000)
                ],
                recovered :[
                    Math.round(Math.random()*800),
                    Math.round(Math.random()*800),
                    Math.round(Math.random()*800),
                    Math.round(Math.random()*800)
                ],
                monthRecovered : Math.round(Math.random()*800),
                monthNewCases : Math.round(Math.random()*1000)
            },
            {
                name : 'February',
                user : ['Katherine Diaz', 'Belyini Cabral', 'Mercedes Perez', 'N/A'],
                newCases : [
                    Math.round(Math.random()*1000),
                    Math.round(Math.random()*1000),
                    Math.round(Math.random()*1000),
                    Math.round(Math.random()*1000)
                ],
                recovered :[
                    Math.round(Math.random()*800),
                    Math.round(Math.random()*800),
                    Math.round(Math.random()*800),
                    Math.round(Math.random()*800)
                ],
                monthRecovered : Math.round(Math.random()*800),
                monthNewCases : Math.round(Math.random()*1000)
            }
        ];

As I see It, it's a little be advanced for me, I think I need more knowledge of data structures in this language, don't need to tell me the whole solution just where to start and some steps.

Nina Scholz

You could take an object for grouping and get the values from it as array of objects.

var response = [{ name: "October : 2019", userName: "Katherine Diaz", newCases: 875, recover: 8 }, { name: "December : 2019", userName: "Katherine Diaz", newCases: 503, recover: 38 }, { name: "November : 2019", userName: "Katherine Diaz", newCases: 227, recover: 14 }, { name: "November : 2019", userName: "Belyini Cabral", newCases: 19, recover: 14 }, { name: "January : 2020", userName: "Katherine Diaz", newCases: 272, recover: 123 }, { name: "October : 2019", userName: "Belyini Cabral", newCases: 287, recover: 1 }, { name: "October : 2019", userName: "N/A", newCases: 3, recover: 0 }, { name: "January : 2020", userName: "Mercedes Perez", newCases: 65, recover: 0 }, { name: "February : 2020", userName: "N/A", newCases: 76, recover: 0 }, { name: "December : 2019", userName: "N/A", newCases: 136, recover: 0 }, { name: "November : 2019", userName: "Mercedes Perez", newCases: 15, recover: 0 }, { name: "January : 2020", userName: "N/A", newCases: 299, recover: 0 }, { name: "December : 2019", userName: "Mercedes Perez", newCases: 44, recover: 0 }, { name: "October : 2019", userName: "Mercedes Perez", newCases: 323, recover: 0 }, { name: "December : 2019", userName: "Belyini Cabral", newCases: 0, recover: 11 }, { name: "January : 2020", userName: "Belyini Cabral", newCases: 0, recover: 11 }, { name: "February : 2020", userName: "Mercedes Perez", newCases: 0, recover: 20 }, { name: "February : 2020", userName: "Belyini Cabral", newCases: 0, recover: 9 }, { name: "February : 2020", userName: "Katherine Diaz", newCases: 0, recover: 43 }],
    result = Object.values(response.reduce((object, { name, userName, newCases, recover }) => {
        if (!object[name]) object[name] = { name, user: [], newCases: [], recovered: [] };
        object[name].user.push(userName);
        object[name].newCases.push(newCases);
        object[name].recovered.push(recover);
        return object;
    }, {}));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

How can I determine the type of object an ArrayList iterator will return next?

Transform an object to a list[object] in Realm as migration ( How can i replace a list[objects] with object field in Realm? )

How can i put the next array value into the current key array

How to transform an array to an object

How can I transform / cast a PHP parent object to a child object?

How can I Transform object in objects to array with es6 or lodash

How can I transform my array to 0 or 1 elements?

How can I transform an variable, or the record, into an array

How can I use a dictionary to transform an array in python?

how to transform array of c# primitive type assigned to Object into something I can iterate through?

How can I transform a SF object into a Spatial Points Data Frame?

How can I transform an object to be grouped by object keys

How can I transform this dataframe?

How can I get table tuple and transform it into an array in C for postgres?

How can I transform a multidimensional array to a simpler structure?

How to transform an object into an array of objects?

How to transform object into sorted array?

How to transform Array to Object?

How to transform array of object into more advanced array

How can I map an Array or an Object to an Object?

how can i transform this object in to array?

How do I transform an array?

Numpy - How can I transform this array without using python loops?

How can I turn an array object into an object?

How can i transform this table?

How can I transform a JSON array returned by jq into an object with a single attribute with that list's data?

How can I transform this object with strings into a normal one?

How to transform an array of object as array into array

How can I change object array format once I click on next button in react js?