I am trying to transform an array of objects (aka initial objects) into an array with the objects re arranged.
Basically I want to create an array which contains a new object. This new object has at level zero, some property of the initial objects and a nested array that contains other value from the same initial objects
To do so, I am using lodash but I am missing something.
My initial array
const myArray = {
ages: [
{
maxAge: 32,
minAge: 20,
name: "20-32",
percent: 20,
quotaGroupName: "Age"
},
{
maxAge: 40,
minAge: 33,
name: "33-40",
percent: 50,
quotaGroupName: "Age"
}
],
genders: [
{
gender: 1
name: "Male"
percent: 40
quotaGroupName: "Gender"
},
{
gender: 2
name: "Female"
percent: 60
quotaGroupName: "Gender"
},
]
}
I would like to obtain something like:
groups: [
{
groupType: "Age", // quotaGroupName
quotas: [
{
name: "20-32",
percent: 20,
targetGroup: {
minAge: 20,
maxAge: 32,
}
},
{
name: "33-40",
percent: 50,
targetGroup: {
minAge: 40,
maxAge: 30,
}
}
]
},
{
groupType: "Gender", // quotaGroupName
quotas: [
{
name: "Male",
percent: 20,
targetGroup: {
variableIds: [1], // gender
}
},
{
name: "Female",
percent: 50,
targetGroup: {
variableIds: [2], // gender
}
}
]
}
]
I am trying with:
_.chain(data)
.groupBy("groupType")
.map((value, key) => (something))
.value()
but I am really stuck and not sure how to proceede