I have an array of data as follows
const data = [
{
"SurveyGroupID": 28,
"SurveyGroupTypeID": 4,
"SurveyID": 23,
"SurveyGroupSequence": 1,
"SurveyQuestionSequence": 1,
"Question": "What is your reason for visiting our practice?",
"DataTypeName": "Memo",
"DataTypeID": 4,
"Required": true
},
{
"SurveyGroupID": 28,
"SurveyGroupTypeID": 4,
"SurveyID": 23,
"SurveyGroupSequence": 2,
"SurveyQuestionSequence": 2,
"Question": "What is your height?",
"DataTypeName": "String",
"DataTypeID": 2,
"Required": true
},
{
"SurveyGroupID": 28,
"SurveyGroupTypeID": 4,
"SurveyID": 23,
"SurveyGroupSequence": 1,
"SurveyQuestionSequence": 3,
"Question": "What is your weight?",
"DataTypeName": "Integer",
"DataTypeID": 3,
"Required": true
},
]
I need to group the array based on a key's value. That is i need to group together array items to a fields key which having same SurveyGroupSequence value
resulting into
[
{
"fields": [
{
"SurveyGroupTypeID": "1",
"Question": "What is your reason for visiting our practice?"
},
{
"SurveyGroupTypeID": "1",
"Question": "What is your weight?"
}
]
},
{
"fields": [
{
"SurveyGroupTypeID": "2",
"Question": "What is your height?"
}
]
}
]
How could i achieve this? Thank you.
What i have tried
const ar1 = [];
data.forEach((Element, index) => {
const fields = [{
"SurveyGroupTypeID": Element.SurveyGroupTypeID,
"Question": Element.Question
}]
ar1.push({
fields : fields
})
})